function css_browser_selector(e) {
    var t = e.toLowerCase(),
    n = function(e) {
        return t.indexOf(e) > -1
    },
    r = "gecko",
    i = "webkit",
    s = "safari",
    o = "opera",
    u = "mobile",
    a = document.documentElement,
    f = [!/opera|webtv/i.test(t) && /msie\s(\d)/.test(t) ? "ie ie" + RegExp.$1: n("firefox/2") ? r + " ff2": n("firefox/3.5") ? r + " ff3 ff3_5": n("firefox/3.6") ? r + " ff3 ff3_6": n("firefox/3") ? r + " ff3": n("gecko/") ? r: n("opera") ? o + (/version\/(\d+)/.test(t) ? " " + o + RegExp.$1: /opera(\s|\/)(\d+)/.test(t) ? " " + o + RegExp.$2: "") : n("konqueror") ? "konqueror": n("blackberry") ? u + " blackberry": n("android") ? u + " android": n("chrome") ? i + " chrome": n("iron") ? i + " iron": n("applewebkit/") ? i + " " + s + (/version\/(\d+)/.test(t) ? " " + s + RegExp.$1: "") : n("mozilla/") ? r: "", n("j2me") ? u + " j2me": n("iphone") ? u + " iphone": n("ipod") ? u + " ipod": n("ipad") ? u + " ipad": n("mac") ? "mac": n("darwin") ? "mac": n("webtv") ? "webtv": n("win") ? "win" + (n("windows nt 6.0") ? " vista": "") : n("freebsd") ? "freebsd": n("x11") || n("linux") ? "linux": "", "js"];
    c = f.join(" ");
    a.className += " " + c;
    return c
}
if ("undefined" == typeof jQuery) throw new Error("Bootstrap requires jQuery"); +
function(e) {
    "use strict";
    function t() {
        var e = document.createElement("bootstrap"),
        t = {
            WebkitTransition: "webkitTransitionEnd",
            MozTransition: "transitionend",
            OTransition: "oTransitionEnd otransitionend",
            transition: "transitionend"
        };
        for (var n in t) if (void 0 !== e.style[n]) return {
            end: t[n]
        }
    }
    e.fn.emulateTransitionEnd = function(t) {
        var n = !1,
        r = this;
        e(this).one(e.support.transition.end,
        function() {
            n = !0
        });
        var i = function() {
            n || e(r).trigger(e.support.transition.end)
        };
        return setTimeout(i, t),
        this
    },
    e(function() {
        e.support.transition = t()
    })
} (window.jQuery),
+
function(e) {
    "use strict";
    var t = '[data-dismiss="alert"]',
    n = function(n) {
        e(n).on("click", t, this.close)
    };
    n.prototype.close = function(t) {
        function n() {
            s.trigger("closed.bs.alert").remove()
        }
        var r = e(this),
        i = r.attr("data-target");
        i || (i = r.attr("href"), i = i && i.replace(/.*(?=#[^\s]*$)/, ""));
        var s = e(i);
        t && t.preventDefault(),
        s.length || (s = r.hasClass("alert") ? r: r.parent()),
        s.trigger(t = e.Event("close.bs.alert")),
        t.isDefaultPrevented() || (s.removeClass("in"), e.support.transition && s.hasClass("fade") ? s.one(e.support.transition.end, n).emulateTransitionEnd(150) : n())
    };
    var r = e.fn.alert;
    e.fn.alert = function(t) {
        return this.each(function() {
            var r = e(this),
            i = r.data("bs.alert");
            i || r.data("bs.alert", i = new n(this)),
            "string" == typeof t && i[t].call(r)
        })
    },
    e.fn.alert.Constructor = n,
    e.fn.alert.noConflict = function() {
        return e.fn.alert = r,
        this
    },
    e(document).on("click.bs.alert.data-api", t, n.prototype.close)
} (window.jQuery),
+
function(e) {
    "use strict";
    var t = function(n, r) {
        this.$element = e(n),
        this.options = e.extend({},
        t.DEFAULTS, r)
    };
    t.DEFAULTS = {
        loadingText: "loading..."
    },
    t.prototype.setState = function(e) {
        var t = "disabled",
        n = this.$element,
        r = n.is("input") ? "val": "html",
        i = n.data();
        e += "Text",
        i.resetText || n.data("resetText", n[r]()),
        n[r](i[e] || this.options[e]),
        setTimeout(function() {
            "loadingText" == e ? n.addClass(t).attr(t, t) : n.removeClass(t).removeAttr(t)
        },
        0)
    },
    t.prototype.toggle = function() {
        var e = this.$element.closest('[data-toggle="buttons"]');
        if (e.length) {
            var t = this.$element.find("input").prop("checked", !this.$element.hasClass("active")).trigger("change");
            "radio" === t.prop("type") && e.find(".active").removeClass("active")
        }
        this.$element.toggleClass("active")
    };
    var n = e.fn.button;
    e.fn.button = function(n) {
        return this.each(function() {
            var r = e(this),
            i = r.data("bs.button"),
            s = "object" == typeof n && n;
            i || r.data("bs.button", i = new t(this, s)),
            "toggle" == n ? i.toggle() : n && i.setState(n)
        })
    },
    e.fn.button.Constructor = t,
    e.fn.button.noConflict = function() {
        return e.fn.button = n,
        this
    },
    e(document).on("click.bs.button.data-api", "[data-toggle^=button]",
    function(t) {
        var n = e(t.target);
        n.hasClass("btn") || (n = n.closest(".btn")),
        n.button("toggle"),
        t.preventDefault()
    })
} (window.jQuery),
+
function(e) {
    "use strict";
    var t = function(t, n) {
        this.$element = e(t),
        this.$indicators = this.$element.find(".carousel-indicators"),
        this.options = n,
        this.paused = this.sliding = this.interval = this.$active = this.$items = null,
        "hover" == this.options.pause && this.$element.on("mouseenter", e.proxy(this.pause, this)).on("mouseleave", e.proxy(this.cycle, this))
    };
    t.DEFAULTS = {
        interval: 5e3,
        pause: "hover",
        wrap: !0
    },
    t.prototype.cycle = function(t) {
        return t || (this.paused = !1),
        this.interval && clearInterval(this.interval),
        this.options.interval && !this.paused && (this.interval = setInterval(e.proxy(this.next, this), this.options.interval)),
        this
    },
    t.prototype.getActiveIndex = function() {
        return this.$active = this.$element.find(".item.active"),
        this.$items = this.$active.parent().children(),
        this.$items.index(this.$active)
    },
    t.prototype.to = function(t) {
        var n = this,
        r = this.getActiveIndex();
        return t > this.$items.length - 1 || 0 > t ? void 0 : this.sliding ? this.$element.one("slid",
        function() {
            n.to(t)
        }) : r == t ? this.pause().cycle() : this.slide(t > r ? "next": "prev", e(this.$items[t]))
    },
    t.prototype.pause = function(t) {
        return t || (this.paused = !0),
        this.$element.find(".next, .prev").length && e.support.transition.end && (this.$element.trigger(e.support.transition.end), this.cycle(!0)),
        this.interval = clearInterval(this.interval),
        this
    },
    t.prototype.next = function() {
        return this.sliding ? void 0 : this.slide("next")
    },
    t.prototype.prev = function() {
        return this.sliding ? void 0 : this.slide("prev")
    },
    t.prototype.slide = function(t, n) {
        var r = this.$element.find(".item.active"),
        i = n || r[t](),
        s = this.interval,
        o = "next" == t ? "left": "right",
        u = "next" == t ? "first": "last",
        f = this;
        if (!i.length) {
            if (!this.options.wrap) return;
            i = this.$element.find(".item")[u]()
        }
        this.sliding = !0,
        s && this.pause();
        var l = e.Event("slide.bs.carousel", {
            relatedTarget: i[0],
            direction: o
        });
        if (!i.hasClass("active")) {
            if (this.$indicators.length && (this.$indicators.find(".active").removeClass("active"), this.$element.one("slid",
            function() {
                var t = e(f.$indicators.children()[f.getActiveIndex()]);
                t && t.addClass("active")
            })), e.support.transition && this.$element.hasClass("slide")) {
                if (this.$element.trigger(l), l.isDefaultPrevented()) return;
                i.addClass(t),
                i[0].offsetWidth,
                r.addClass(o),
                i.addClass(o),
                r.one(e.support.transition.end,
                function() {
                    i.removeClass([t, o].join(" ")).addClass("active"),
                    r.removeClass(["active", o].join(" ")),
                    f.sliding = !1,
                    setTimeout(function() {
                        f.$element.trigger("slid")
                    },
                    0)
                }).emulateTransitionEnd(600)
            } else {
                if (this.$element.trigger(l), l.isDefaultPrevented()) return;
                r.removeClass("active"),
                i.addClass("active"),
                this.sliding = !1,
                this.$element.trigger("slid")
            }
            return s && this.cycle(),
            this
        }
    };
    var n = e.fn.carousel;
    e.fn.carousel = function(n) {
        return this.each(function() {
            var r = e(this),
            i = r.data("bs.carousel"),
            s = e.extend({},
            t.DEFAULTS, r.data(), "object" == typeof n && n),
            o = "string" == typeof n ? n: s.slide;
            i || r.data("bs.carousel", i = new t(this, s)),
            "number" == typeof n ? i.to(n) : o ? i[o]() : s.interval && i.pause().cycle()
        })
    },
    e.fn.carousel.Constructor = t,
    e.fn.carousel.noConflict = function() {
        return e.fn.carousel = n,
        this
    },
    e(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]",
    function(t) {
        var n, r = e(this),
        i = e(r.attr("data-target") || (n = r.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, "")),
        s = e.extend({},
        i.data(), r.data()),
        o = r.attr("data-slide-to");
        o && (s.interval = !1),
        i.carousel(s),
        (o = r.attr("data-slide-to")) && i.data("bs.carousel").to(o),
        t.preventDefault()
    }),
    e(window).on("load",
    function() {
        e('[data-ride="carousel"]').each(function() {
            var t = e(this);
            t.carousel(t.data())
        })
    })
} (window.jQuery),
+
function(e) {
    "use strict";
    var t = function(n, r) {
        this.$element = e(n),
        this.options = e.extend({},
        t.DEFAULTS, r),
        this.transitioning = null,
        this.options.parent && (this.$parent = e(this.options.parent)),
        this.options.toggle && this.toggle()
    };
    t.DEFAULTS = {
        toggle: !0
    },
    t.prototype.dimension = function() {
        var e = this.$element.hasClass("width");
        return e ? "width": "height"
    },
    t.prototype.show = function() {
        if (!this.transitioning && !this.$element.hasClass("in")) {
            var t = e.Event("show.bs.collapse");
            if (this.$element.trigger(t), !t.isDefaultPrevented()) {
                var n = this.$parent && this.$parent.find("> .panel > .in");
                if (n && n.length) {
                    var r = n.data("bs.collapse");
                    if (r && r.transitioning) return;
                    n.collapse("hide"),
                    r || n.data("bs.collapse", null)
                }
                var i = this.dimension();
                this.$element.removeClass("collapse").addClass("collapsing")[i](0),
                this.transitioning = 1;
                var s = function() {
                    this.$element.removeClass("collapsing").addClass("in")[i]("auto"),
                    this.transitioning = 0,
                    this.$element.trigger("shown.bs.collapse")
                };
                if (!e.support.transition) return s.call(this);
                var o = e.camelCase(["scroll", i].join("-"));
                this.$element.one(e.support.transition.end, e.proxy(s, this)).emulateTransitionEnd(350)[i](this.$element[0][o])
            }
        }
    },
    t.prototype.hide = function() {
        if (!this.transitioning && this.$element.hasClass("in")) {
            var t = e.Event("hide.bs.collapse");
            if (this.$element.trigger(t), !t.isDefaultPrevented()) {
                var n = this.dimension();
                this.$element[n](this.$element[n]())[0].offsetHeight,
                this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),
                this.transitioning = 1;
                var r = function() {
                    this.transitioning = 0,
                    this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")
                };
                return e.support.transition ? (this.$element[n](0).one(e.support.transition.end, e.proxy(r, this)).emulateTransitionEnd(350), void 0) : r.call(this)
            }
        }
    },
    t.prototype.toggle = function() {
        this[this.$element.hasClass("in") ? "hide": "show"]()
    };
    var n = e.fn.collapse;
    e.fn.collapse = function(n) {
        return this.each(function() {
            var r = e(this),
            i = r.data("bs.collapse"),
            s = e.extend({},
            t.DEFAULTS, r.data(), "object" == typeof n && n);
            i || r.data("bs.collapse", i = new t(this, s)),
            "string" == typeof n && i[n]()
        })
    },
    e.fn.collapse.Constructor = t,
    e.fn.collapse.noConflict = function() {
        return e.fn.collapse = n,
        this
    },
    e(document).on("click.bs.collapse.data-api", "[data-toggle=collapse]",
    function(t) {
        var n, r = e(this),
        i = r.attr("data-target") || t.preventDefault() || (n = r.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, ""),
        s = e(i),
        o = s.data("bs.collapse"),
        u = o ? "toggle": r.data(),
        f = r.attr("data-parent"),
        l = f && e(f);
        o && o.transitioning || (l && l.find('[data-toggle=collapse][data-parent="' + f + '"]').not(r).addClass("collapsed"), r[s.hasClass("in") ? "addClass": "removeClass"]("collapsed")),
        s.collapse(u)
    })
} (window.jQuery),
+
function(e) {
    "use strict";
    function t() {
        e(r).remove(),
        e(i).each(function(t) {
            var r = n(e(this));
            r.hasClass("open") && (r.trigger(t = e.Event("hide.bs.dropdown")), t.isDefaultPrevented() || r.removeClass("open").trigger("hidden.bs.dropdown"))
        })
    }
    function n(t) {
        var n = t.attr("data-target");
        n || (n = t.attr("href"), n = n && /#/.test(n) && n.replace(/.*(?=#[^\s]*$)/, ""));
        var r = n && e(n);
        return r && r.length ? r: t.parent()
    }
    var r = ".dropdown-backdrop",
    i = "[data-toggle=dropdown]",
    s = function(t) {
        e(t).on("click.bs.dropdown", this.toggle)
    };
    s.prototype.toggle = function(r) {
        var i = e(this);
        if (!i.is(".disabled, :disabled")) {
            var s = n(i),
            o = s.hasClass("open");
            if (t(), !o) {
                if ("ontouchstart" in document.documentElement && !s.closest(".navbar-nav").length && e('<div class="dropdown-backdrop"/>').insertAfter(e(this)).on("click", t), s.trigger(r = e.Event("show.bs.dropdown")), r.isDefaultPrevented()) return;
                s.toggleClass("open").trigger("shown.bs.dropdown"),
                i.focus()
            }
            return ! 1
        }
    },
    s.prototype.keydown = function(t) {
        if (/(38|40|27)/.test(t.keyCode)) {
            var r = e(this);
            if (t.preventDefault(), t.stopPropagation(), !r.is(".disabled, :disabled")) {
                var s = n(r),
                o = s.hasClass("open");
                if (!o || o && 27 == t.keyCode) return 27 == t.which && s.find(i).focus(),
                r.click();
                var u = e("[role=menu] li:not(.divider):visible a", s);
                if (u.length) {
                    var f = u.index(u.filter(":focus"));
                    38 == t.keyCode && f > 0 && f--,
                    40 == t.keyCode && f < u.length - 1 && f++,
                    ~f || (f = 0),
                    u.eq(f).focus()
                }
            }
        }
    };
    var o = e.fn.dropdown;
    e.fn.dropdown = function(t) {
        return this.each(function() {
            var n = e(this),
            r = n.data("dropdown");
            r || n.data("dropdown", r = new s(this)),
            "string" == typeof t && r[t].call(n)
        })
    },
    e.fn.dropdown.Constructor = s,
    e.fn.dropdown.noConflict = function() {
        return e.fn.dropdown = o,
        this
    },
    e(document).on("click.bs.dropdown.data-api", t).on("click.bs.dropdown.data-api", ".dropdown form",
    function(e) {
        e.stopPropagation()
    }).on("click.bs.dropdown.data-api", i, s.prototype.toggle).on("keydown.bs.dropdown.data-api", i + ", [role=menu]", s.prototype.keydown)
} (window.jQuery),
+
function(e) {
    "use strict";
    var t = function(t, n) {
        this.options = n,
        this.$element = e(t),
        this.$backdrop = this.isShown = null,
        this.options.remote && this.$element.load(this.options.remote)
    };
    t.DEFAULTS = {
        backdrop: !0,
        keyboard: !0,
        show: !0
    },
    t.prototype.toggle = function(e) {
        return this[this.isShown ? "hide": "show"](e)
    },
    t.prototype.show = function(t) {
        var n = this,
        r = e.Event("show.bs.modal", {
            relatedTarget: t
        });
        this.$element.trigger(r),
        this.isShown || r.isDefaultPrevented() || (this.isShown = !0, this.escape(), this.$element.on("click.dismiss.modal", '[data-dismiss="modal"]', e.proxy(this.hide, this)), this.backdrop(function() {
            var r = e.support.transition && n.$element.hasClass("fade");
            n.$element.parent().length || n.$element.appendTo(document.body),
            n.$element.show(),
            r && n.$element[0].offsetWidth,
            n.$element.addClass("in").attr("aria-hidden", !1),
            n.enforceFocus();
            var i = e.Event("shown.bs.modal", {
                relatedTarget: t
            });
            r ? n.$element.find(".modal-dialog").one(e.support.transition.end,
            function() {
                n.$element.focus().trigger(i)
            }).emulateTransitionEnd(300) : n.$element.focus().trigger(i)
        }))
    },
    t.prototype.hide = function(t) {
        t && t.preventDefault(),
        t = e.Event("hide.bs.modal"),
        this.$element.trigger(t),
        this.isShown && !t.isDefaultPrevented() && (this.isShown = !1, this.escape(), e(document).off("focusin.bs.modal"), this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.modal"), e.support.transition && this.$element.hasClass("fade") ? this.$element.one(e.support.transition.end, e.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal())
    },
    t.prototype.enforceFocus = function() {
        e(document).off("focusin.bs.modal").on("focusin.bs.modal", e.proxy(function(e) {
            this.$element[0] === e.target || this.$element.has(e.target).length || this.$element.focus()
        },
        this))
    },
    t.prototype.escape = function() {
        this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", e.proxy(function(e) {
            27 == e.which && this.hide()
        },
        this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal")
    },
    t.prototype.hideModal = function() {
        var e = this;
        this.$element.hide(),
        this.backdrop(function() {
            e.removeBackdrop(),
            e.$element.trigger("hidden.bs.modal")
        })
    },
    t.prototype.removeBackdrop = function() {
        this.$backdrop && this.$backdrop.remove(),
        this.$backdrop = null
    },
    t.prototype.backdrop = function(t) {
        var n = this.$element.hasClass("fade") ? "fade": "";
        if (this.isShown && this.options.backdrop) {
            var r = e.support.transition && n;
            if (this.$backdrop = e('<div class="modal-backdrop ' + n + '" />').appendTo(document.body), this.$element.on("click.dismiss.modal", e.proxy(function(e) {
                e.target === e.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this))
            },
            this)), r && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !t) return;
            r ? this.$backdrop.one(e.support.transition.end, t).emulateTransitionEnd(150) : t()
        } else ! this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), e.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(e.support.transition.end, t).emulateTransitionEnd(150) : t()) : t && t()
    };
    var n = e.fn.modal;
    e.fn.modal = function(n, r) {
        return this.each(function() {
            var i = e(this),
            s = i.data("bs.modal"),
            o = e.extend({},
            t.DEFAULTS, i.data(), "object" == typeof n && n);
            s || i.data("bs.modal", s = new t(this, o)),
            "string" == typeof n ? s[n](r) : o.show && s.show(r)
        })
    },
    e.fn.modal.Constructor = t,
    e.fn.modal.noConflict = function() {
        return e.fn.modal = n,
        this
    },
    e(document).on("click.bs.modal.data-api", '[data-toggle="modal"]',
    function(t) {
        var n = e(this),
        r = n.attr("href"),
        i = e(n.attr("data-target") || r && r.replace(/.*(?=#[^\s]+$)/, "")),
        s = i.data("modal") ? "toggle": e.extend({
            remote: !/#/.test(r) && r
        },
        i.data(), n.data());
        t.preventDefault(),
        i.modal(s, this).one("hide",
        function() {
            n.is(":visible") && n.focus()
        })
    }),
    e(document).on("show.bs.modal", ".modal",
    function() {
        e(document.body).addClass("modal-open")
    }).on("hidden.bs.modal", ".modal",
    function() {
        e(document.body).removeClass("modal-open")
    })
} (window.jQuery),
+
function(e) {
    "use strict";
    var t = function(e, t) {
        this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null,
        this.init("tooltip", e, t)
    };
    t.DEFAULTS = {
        animation: !0,
        placement: "top",
        selector: !1,
        template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
        trigger: "hover focus",
        title: "",
        delay: 0,
        html: !1,
        container: !1
    },
    t.prototype.init = function(t, n, r) {
        this.enabled = !0,
        this.type = t,
        this.$element = e(n),
        this.options = this.getOptions(r);
        for (var i = this.options.trigger.split(" "), s = i.length; s--;) {
            var o = i[s];
            if ("click" == o) this.$element.on("click." + this.type, this.options.selector, e.proxy(this.toggle, this));
            else if ("manual" != o) {
                var u = "hover" == o ? "mouseenter": "focus",
                f = "hover" == o ? "mouseleave": "blur";
                this.$element.on(u + "." + this.type, this.options.selector, e.proxy(this.enter, this)),
                this.$element.on(f + "." + this.type, this.options.selector, e.proxy(this.leave, this))
            }
        }
        this.options.selector ? this._options = e.extend({},
        this.options, {
            trigger: "manual",
            selector: ""
        }) : this.fixTitle()
    },
    t.prototype.getDefaults = function() {
        return t.DEFAULTS
    },
    t.prototype.getOptions = function(t) {
        return t = e.extend({},
        this.getDefaults(), this.$element.data(), t),
        t.delay && "number" == typeof t.delay && (t.delay = {
            show: t.delay,
            hide: t.delay
        }),
        t
    },
    t.prototype.getDelegateOptions = function() {
        var t = {},
        n = this.getDefaults();
        return this._options && e.each(this._options,
        function(e, r) {
            n[e] != r && (t[e] = r)
        }),
        t
    },
    t.prototype.enter = function(t) {
        var n = t instanceof this.constructor ? t: e(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
        return clearTimeout(n.timeout),
        n.hoverState = "in",
        n.options.delay && n.options.delay.show ? (n.timeout = setTimeout(function() {
            "in" == n.hoverState && n.show()
        },
        n.options.delay.show), void 0) : n.show()
    },
    t.prototype.leave = function(t) {
        var n = t instanceof this.constructor ? t: e(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type);
        return clearTimeout(n.timeout),
        n.hoverState = "out",
        n.options.delay && n.options.delay.hide ? (n.timeout = setTimeout(function() {
            "out" == n.hoverState && n.hide()
        },
        n.options.delay.hide), void 0) : n.hide()
    },
    t.prototype.show = function() {
        var t = e.Event("show.bs." + this.type);
        if (this.hasContent() && this.enabled) {
            if (this.$element.trigger(t), t.isDefaultPrevented()) return;
            var n = this.tip();
            this.setContent(),
            this.options.animation && n.addClass("fade");
            var r = "function" == typeof this.options.placement ? this.options.placement.call(this, n[0], this.$element[0]) : this.options.placement,
            i = /\s?auto?\s?/i,
            s = i.test(r);
            s && (r = r.replace(i, "") || "top"),
            n.detach().css({
                top: 0,
                left: 0,
                display: "block"
            }).addClass(r),
            this.options.container ? n.appendTo(this.options.container) : n.insertAfter(this.$element);
            var o = this.getPosition(),
            u = n[0].offsetWidth,
            f = n[0].offsetHeight;
            if (s) {
                var l = this.$element.parent(),
                c = r,
                h = document.documentElement.scrollTop || document.body.scrollTop,
                p = "body" == this.options.container ? window.innerWidth: l.outerWidth(),
                d = "body" == this.options.container ? window.innerHeight: l.outerHeight(),
                v = "body" == this.options.container ? 0 : l.offset().left;
                r = "bottom" == r && o.top + o.height + f - h > d ? "top": "top" == r && o.top - h - f < 0 ? "bottom": "right" == r && o.right + u > p ? "left": "left" == r && o.left - u < v ? "right": r,
                n.removeClass(c).addClass(r)
            }
            var m = this.getCalculatedOffset(r, o, u, f);
            this.applyPlacement(m, r),
            this.$element.trigger("shown.bs." + this.type)
        }
    },
    t.prototype.applyPlacement = function(e, t) {
        var n, r = this.tip(),
        i = r[0].offsetWidth,
        s = r[0].offsetHeight,
        o = parseInt(r.css("margin-top"), 10),
        u = parseInt(r.css("margin-left"), 10);
        isNaN(o) && (o = 0),
        isNaN(u) && (u = 0),
        e.top = e.top + o,
        e.left = e.left + u,
        r.offset(e).addClass("in");
        var a = r[0].offsetWidth,
        f = r[0].offsetHeight;
        if ("top" == t && f != s && (n = !0, e.top = e.top + s - f), /bottom|top/.test(t)) {
            var l = 0;
            e.left < 0 && (l = -2 * e.left, e.left = 0, r.offset(e), a = r[0].offsetWidth, f = r[0].offsetHeight),
            this.replaceArrow(l - i + a, a, "left")
        } else this.replaceArrow(f - s, f, "top");
        n && r.offset(e)
    },
    t.prototype.replaceArrow = function(e, t, n) {
        this.arrow().css(n, e ? 50 * (1 - e / t) + "%": "")
    },
    t.prototype.setContent = function() {
        var e = this.tip(),
        t = this.getTitle();
        e.find(".tooltip-inner")[this.options.html ? "html": "text"](t),
        e.removeClass("fade in top bottom left right")
    },
    t.prototype.hide = function() {
        function t() {
            "in" != n.hoverState && r.detach()
        }
        var n = this,
        r = this.tip(),
        i = e.Event("hide.bs." + this.type);
        return this.$element.trigger(i),
        i.isDefaultPrevented() ? void 0 : (r.removeClass("in"), e.support.transition && this.$tip.hasClass("fade") ? r.one(e.support.transition.end, t).emulateTransitionEnd(150) : t(), this.$element.trigger("hidden.bs." + this.type), this)
    },
    t.prototype.fixTitle = function() {
        var e = this.$element; (e.attr("title") || "string" != typeof e.attr("data-original-title")) && e.attr("data-original-title", e.attr("title") || "").attr("title", "")
    },
    t.prototype.hasContent = function() {
        return this.getTitle()
    },
    t.prototype.getPosition = function() {
        var t = this.$element[0];
        return e.extend({},
        "function" == typeof t.getBoundingClientRect ? t.getBoundingClientRect() : {
            width: t.offsetWidth,
            height: t.offsetHeight
        },
        this.$element.offset())
    },
    t.prototype.getCalculatedOffset = function(e, t, n, r) {
        return "bottom" == e ? {
            top: t.top + t.height,
            left: t.left + t.width / 2 - n / 2
        }: "top" == e ? {
            top: t.top - r,
            left: t.left + t.width / 2 - n / 2
        }: "left" == e ? {
            top: t.top + t.height / 2 - r / 2,
            left: t.left - n
        }: {
            top: t.top + t.height / 2 - r / 2,
            left: t.left + t.width
        }
    },
    t.prototype.getTitle = function() {
        var e, t = this.$element,
        n = this.options;
        return e = t.attr("data-original-title") || ("function" == typeof n.title ? n.title.call(t[0]) : n.title)
    },
    t.prototype.tip = function() {
        return this.$tip = this.$tip || e(this.options.template)
    },
    t.prototype.arrow = function() {
        return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
    },
    t.prototype.validate = function() {
        this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null)
    },
    t.prototype.enable = function() {
        this.enabled = !0
    },
    t.prototype.disable = function() {
        this.enabled = !1
    },
    t.prototype.toggleEnabled = function() {
        this.enabled = !this.enabled
    },
    t.prototype.toggle = function(t) {
        var n = t ? e(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type) : this;
        n.tip().hasClass("in") ? n.leave(n) : n.enter(n)
    },
    t.prototype.destroy = function() {
        this.hide().$element.off("." + this.type).removeData("bs." + this.type)
    };
    var n = e.fn.tooltip;
    e.fn.tooltip = function(n) {
        return this.each(function() {
            var r = e(this),
            i = r.data("bs.tooltip"),
            s = "object" == typeof n && n;
            i || r.data("bs.tooltip", i = new t(this, s)),
            "string" == typeof n && i[n]()
        })
    },
    e.fn.tooltip.Constructor = t,
    e.fn.tooltip.noConflict = function() {
        return e.fn.tooltip = n,
        this
    }
} (window.jQuery),
+
function(e) {
    "use strict";
    var t = function(e, t) {
        this.init("popover", e, t)
    };
    if (!e.fn.tooltip) throw new Error("Popover requires tooltip.js");
    t.DEFAULTS = e.extend({},
    e.fn.tooltip.Constructor.DEFAULTS, {
        placement: "right",
        trigger: "click",
        content: "",
        template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
    }),
    t.prototype = e.extend({},
    e.fn.tooltip.Constructor.prototype),
    t.prototype.constructor = t,
    t.prototype.getDefaults = function() {
        return t.DEFAULTS
    },
    t.prototype.setContent = function() {
        var e = this.tip(),
        t = this.getTitle(),
        n = this.getContent();
        e.find(".popover-title")[this.options.html ? "html": "text"](t),
        e.find(".popover-content")[this.options.html ? "html": "text"](n),
        e.removeClass("fade top bottom left right in"),
        e.find(".popover-title").html() || e.find(".popover-title").hide()
    },
    t.prototype.hasContent = function() {
        return this.getTitle() || this.getContent()
    },
    t.prototype.getContent = function() {
        var e = this.$element,
        t = this.options;
        return e.attr("data-content") || ("function" == typeof t.content ? t.content.call(e[0]) : t.content)
    },
    t.prototype.arrow = function() {
        return this.$arrow = this.$arrow || this.tip().find(".arrow")
    },
    t.prototype.tip = function() {
        return this.$tip || (this.$tip = e(this.options.template)),
        this.$tip
    };
    var n = e.fn.popover;
    e.fn.popover = function(n) {
        return this.each(function() {
            var r = e(this),
            i = r.data("bs.popover"),
            s = "object" == typeof n && n;
            i || r.data("bs.popover", i = new t(this, s)),
            "string" == typeof n && i[n]()
        })
    },
    e.fn.popover.Constructor = t,
    e.fn.popover.noConflict = function() {
        return e.fn.popover = n,
        this
    }
} (window.jQuery),
+
function(e) {
    "use strict";
    function t(n, r) {
        var i, s = e.proxy(this.process, this);
        this.$element = e(n).is("body") ? e(window) : e(n),
        this.$body = e("body"),
        this.$scrollElement = this.$element.on("scroll.bs.scroll-spy.data-api", s),
        this.options = e.extend({},
        t.DEFAULTS, r),
        this.selector = (this.options.target || (i = e(n).attr("href")) && i.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a",
        this.offsets = e([]),
        this.targets = e([]),
        this.activeTarget = null,
        this.refresh(),
        this.process()
    }
    t.DEFAULTS = {
        offset: 10
    },
    t.prototype.refresh = function() {
        var t = this.$element[0] == window ? "offset": "position";
        this.offsets = e([]),
        this.targets = e([]);
        var n = this;
        this.$body.find(this.selector).map(function() {
            var r = e(this),
            i = r.data("target") || r.attr("href"),
            s = /^#\w/.test(i) && e(i);
            return s && s.length && [[s[t]().top + (!e.isWindow(n.$scrollElement.get(0)) && n.$scrollElement.scrollTop()), i]] || null
        }).sort(function(e, t) {
            return e[0] - t[0]
        }).each(function() {
            n.offsets.push(this[0]),
            n.targets.push(this[1])
        })
    },
    t.prototype.process = function() {
        var e, t = this.$scrollElement.scrollTop() + this.options.offset,
        n = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight,
        r = n - this.$scrollElement.height(),
        i = this.offsets,
        s = this.targets,
        o = this.activeTarget;
        if (t >= r) return o != (e = s.last()[0]) && this.activate(e);
        for (e = i.length; e--;) o != s[e] && t >= i[e] && (!i[e + 1] || t <= i[e + 1]) && this.activate(s[e])
    },
    t.prototype.activate = function(t) {
        this.activeTarget = t,
        e(this.selector).parents(".active").removeClass("active");
        var n = this.selector + '[data-target="' + t + '"],' + this.selector + '[href="' + t + '"]',
        r = e(n).parents("li").addClass("active");
        r.parent(".dropdown-menu").length && (r = r.closest("li.dropdown").addClass("active")),
        r.trigger("activate")
    };
    var n = e.fn.scrollspy;
    e.fn.scrollspy = function(n) {
        return this.each(function() {
            var r = e(this),
            i = r.data("bs.scrollspy"),
            s = "object" == typeof n && n;
            i || r.data("bs.scrollspy", i = new t(this, s)),
            "string" == typeof n && i[n]()
        })
    },
    e.fn.scrollspy.Constructor = t,
    e.fn.scrollspy.noConflict = function() {
        return e.fn.scrollspy = n,
        this
    },
    e(window).on("load",
    function() {
        e('[data-spy="scroll"]').each(function() {
            var t = e(this);
            t.scrollspy(t.data())
        })
    })
} (window.jQuery),
+
function(e) {
    "use strict";
    var t = function(t) {
        this.element = e(t)
    };
    t.prototype.show = function() {
        var t = this.element,
        n = t.closest("ul:not(.dropdown-menu)"),
        r = t.data("target");
        if (r || (r = t.attr("href"), r = r && r.replace(/.*(?=#[^\s]*$)/, "")), !t.parent("li").hasClass("active")) {
            var i = n.find(".active:last a")[0],
            s = e.Event("show.bs.tab", {
                relatedTarget: i
            });
            if (t.trigger(s), !s.isDefaultPrevented()) {
                var o = e(r);
                this.activate(t.parent("li"), n),
                this.activate(o, o.parent(),
                function() {
                    t.trigger({
                        type: "shown.bs.tab",
                        relatedTarget: i
                    })
                })
            }
        }
    },
    t.prototype.activate = function(t, n, r) {
        function i() {
            s.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),
            t.addClass("active"),
            o ? (t[0].offsetWidth, t.addClass("in")) : t.removeClass("fade"),
            t.parent(".dropdown-menu") && t.closest("li.dropdown").addClass("active"),
            r && r()
        }
        var s = n.find("> .active"),
        o = r && e.support.transition && s.hasClass("fade");
        o ? s.one(e.support.transition.end, i).emulateTransitionEnd(150) : i(),
        s.removeClass("in")
    };
    var n = e.fn.tab;
    e.fn.tab = function(n) {
        return this.each(function() {
            var r = e(this),
            i = r.data("bs.tab");
            i || r.data("bs.tab", i = new t(this)),
            "string" == typeof n && i[n]()
        })
    },
    e.fn.tab.Constructor = t,
    e.fn.tab.noConflict = function() {
        return e.fn.tab = n,
        this
    },
    e(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]',
    function(t) {
        t.preventDefault(),
        e(this).tab("show")
    })
} (window.jQuery),
+
function(e) {
    "use strict";
    var t = function(n, r) {
        this.options = e.extend({},
        t.DEFAULTS, r),
        this.$window = e(window).on("scroll.bs.affix.data-api", e.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", e.proxy(this.checkPositionWithEventLoop, this)),
        this.$element = e(n),
        this.affixed = this.unpin = null,
        this.checkPosition()
    };
    t.RESET = "affix affix-top affix-bottom",
    t.DEFAULTS = {
        offset: 0
    },
    t.prototype.checkPositionWithEventLoop = function() {
        setTimeout(e.proxy(this.checkPosition, this), 1)
    },
    t.prototype.checkPosition = function() {
        if (this.$element.is(":visible")) {
            var n = e(document).height(),
            r = this.$window.scrollTop(),
            i = this.$element.offset(),
            s = this.options.offset,
            o = s.top,
            u = s.bottom;
            "object" != typeof s && (u = o = s),
            "function" == typeof o && (o = s.top()),
            "function" == typeof u && (u = s.bottom());
            var f = null != this.unpin && r + this.unpin <= i.top ? !1 : null != u && i.top + this.$element.height() >= n - u ? "bottom": null != o && o >= r ? "top": !1;
            this.affixed !== f && (this.unpin && this.$element.css("top", ""), this.affixed = f, this.unpin = "bottom" == f ? i.top - r: null, this.$element.removeClass(t.RESET).addClass("affix" + (f ? "-" + f: "")), "bottom" == f && this.$element.offset({
                top: document.body.offsetHeight - u - this.$element.height()
            }))
        }
    };
    var n = e.fn.affix;
    e.fn.affix = function(n) {
        return this.each(function() {
            var r = e(this),
            i = r.data("bs.affix"),
            s = "object" == typeof n && n;
            i || r.data("bs.affix", i = new t(this, s)),
            "string" == typeof n && i[n]()
        })
    },
    e.fn.affix.Constructor = t,
    e.fn.affix.noConflict = function() {
        return e.fn.affix = n,
        this
    },
    e(window).on("load",
    function() {
        e('[data-spy="affix"]').each(function() {
            var t = e(this),
            n = t.data();
            n.offset = n.offset || {},
            n.offsetBottom && (n.offset.bottom = n.offsetBottom),
            n.offsetTop && (n.offset.top = n.offsetTop),
            t.affix(n)
        })
    })
} (window.jQuery); (function(e) {
    function t(e) {
        var t = e.originalEvent.changedTouches,
        n = t[0],
        r = "",
        i;
        switch (e.type) {
        case "touchmove":
            r = "mousemove";
            break;
        case "touchend":
            r = "mouseup";
            break;
        default:
            return
        }
        i = document.createEvent("MouseEvent"),
        i.initMouseEvent(r, !0, !0, window, 1, n.screenX, n.screenY, n.clientX, n.clientY, !1, !1, !1, !1, 0, null),
        n.target.dispatchEvent(i),
        e.preventDefault()
    }
    e.rateit = {
        aria: {
            resetLabel: "reset rating",
            ratingLabel: "rating"
        }
    },
    e.fn.rateit = function(r, i) {
        var s = 1,
        o = {},
        u = "init",
        a = function(e) {
            return e.charAt(0).toUpperCase() + e.substr(1)
        },
        f;
        if (this.length == 0) return this;
        if (f = e.type(r), f == "object" || r === undefined || r == null) o = e.extend({},
        e.fn.rateit.defaults, r);
        else {
            if (f == "string" && i === undefined) return this.data("rateit" + a(r));
            f == "string" && (u = "setvalue")
        }
        return this.each(function() {
            var f = e(this),
            l = function(e, t) {
                if (t != null) {
                    var n = "aria-value" + (e == "value" ? "now": e),
                    r = f.find(".rateit-range");
                    r.attr(n) != undefined && r.attr(n, t)
                }
                return arguments[0] = "rateit" + a(e),
                f.data.apply(f, arguments)
            },
            c,
            h,
            p,
            d,
            v,
            m,
            g,
            y;
            if (f.hasClass("rateit") || f.addClass("rateit"), c = f.css("direction") != "rtl", u == "setvalue") {
                if (!l("init")) throw "Can't set value before init";
                r != "readonly" || i != !0 || l("readonly") || (f.find(".rateit-range").unbind(), l("wired", !1)),
                r == "value" && (i = i == null ? l("min") : Math.max(l("min"), Math.min(l("max"), i))),
                l("backingfld") && (h = e(l("backingfld")), r == "value" && h.val(i), r == "min" && h[0].min && (h[0].min = i), r == "max" && h[0].max && (h[0].max = i), r == "step" && h[0].step && (h[0].step = i)),
                l(r, i)
            }
            l("init") || (l("min", l("min") || o.min), l("max", l("max") || o.max), l("step", l("step") || o.step), l("readonly", l("readonly") !== undefined ? l("readonly") : o.readonly), l("resetable", l("resetable") !== undefined ? l("resetable") : o.resetable), l("backingfld", l("backingfld") || o.backingfld), l("starwidth", l("starwidth") || o.starwidth), l("starheight", l("starheight") || o.starheight), l("value", Math.max(l("min"), Math.min(l("max"), l("value") || o.value || o.min))), l("ispreset", l("ispreset") !== undefined ? l("ispreset") : o.ispreset), l("backingfld") && (h = e(l("backingfld")), l("value", h.hide().val()), (h.attr("disabled") || h.attr("readonly")) && l("readonly", !0), h[0].nodeName == "INPUT" && (h[0].type == "range" || h[0].type == "text") && (l("min", parseInt(h.attr("min")) || l("min")), l("max", parseInt(h.attr("max")) || l("max")), l("step", parseInt(h.attr("step")) || l("step"))), h[0].nodeName == "SELECT" && h[0].options.length > 1 && (l("min", Number(h[0].options[0].value)), l("max", Number(h[0].options[h[0].length - 1].value)), l("step", Number(h[0].options[1].value) - Number(h[0].options[0].value)))), p = f[0].nodeName == "DIV" ? "div": "span", s++, d = '<button id="rateit-reset-{{index}}" class="rateit-reset" aria-label="' + e.rateit.aria.resetLabel + '" aria-controls="rateit-range-{{index}}"></button><{{element}} id="rateit-range-{{index}}" class="rateit-range" tabindex="0" role="slider" aria-label="' + e.rateit.aria.ratingLabel + '" aria-owns="rateit-reset-{{index}}" aria-valuemin="' + l("min") + '" aria-valuemax="' + l("max") + '" aria-valuenow="' + l("value") + '"><{{element}} class="rateit-selected" style="height:' + l("starheight") + 'px"></{{element}}><{{element}} class="rateit-hover" style="height:' + l("starheight") + 'px"></{{element}}></{{element}}>', f.append(d.replace(/{{index}}/gi, s).replace(/{{element}}/gi, p)), c || (f.find(".rateit-reset").css("float", "right"), f.find(".rateit-selected").addClass("rateit-selected-rtl"), f.find(".rateit-hover").addClass("rateit-hover-rtl")), l("init", !0)),
            v = f.find(".rateit-range"),
            v.width(l("starwidth") * (l("max") - l("min"))).height(l("starheight")),
            m = "rateit-preset" + (c ? "": "-rtl"),
            l("ispreset") ? f.find(".rateit-selected").addClass(m) : f.find(".rateit-selected").removeClass(m),
            l("value") != null && (g = (l("value") - l("min")) * l("starwidth"), f.find(".rateit-selected").width(g)),
            y = f.find(".rateit-reset"),
            y.data("wired") !== !0 && y.bind("click",
            function(t) {
                t.preventDefault(),
                y.blur(),
                l("value", l("min")),
                v.find(".rateit-hover").hide().width(0),
                v.find(".rateit-selected").width(0).show(),
                l("backingfld") && e(l("backingfld")).val(l("min")),
                f.trigger("reset")
            }).data("wired", !0);
            var b = function(t, r) {
                var i = r.changedTouches ? r.changedTouches[0].pageX: r.pageX,
                s = i - e(t).offset().left;
                return c || (s = v.width() - s),
                s > v.width() && (s = v.width()),
                s < 0 && (s = 0),
                g = Math.ceil(s / l("starwidth") * (1 / l("step")))
            },
            w = function(e) {
                var t = e * l("starwidth") * l("step"),
                n = v.find(".rateit-hover"),
                r;
                n.data("width") != t && (v.find(".rateit-selected").hide(), n.width(t).show().data("width", t), r = [e * l("step") + l("min")], f.trigger("hover", r).trigger("over", r))
            },
            E = function(t) {
                l("value", t),
                l("backingfld") && e(l("backingfld")).val(t),
                l("ispreset") && (v.find(".rateit-selected").removeClass(m), l("ispreset", !1)),
                v.find(".rateit-hover").hide(),
                v.find(".rateit-selected").width(t * l("starwidth") - l("min") * l("starwidth")).show(),
                f.trigger("hover", [null]).trigger("over", [null]).trigger("rated", [t])
            };
            l("readonly") ? y.hide() : (l("resetable") || y.hide(), l("wired") || (v.bind("touchmove touchend", t), v.mousemove(function(e) {
                var t = b(this, e);
                w(t)
            }), v.mouseleave(function() {
                v.find(".rateit-hover").hide().width(0).data("width", ""),
                f.trigger("hover", [null]).trigger("over", [null]),
                v.find(".rateit-selected").show()
            }), v.mouseup(function(e) {
                var t = b(this, e),
                n = t * l("step") + l("min");
                E(n)
            }), v.keyup(function(e) { (e.which == 38 || e.which == (c ? 39 : 37)) && E(Math.min(l("value") + l("step"), l("max"))),
                (e.which == 40 || e.which == (c ? 37 : 39)) && E(Math.max(l("value") - l("step"), l("min")))
            }), l("wired", !0)), l("resetable") && y.show()),
            v.attr("aria-readonly", l("readonly"))
        })
    },
    e.fn.rateit.defaults = {
        min: 0,
        max: 5,
        step: .5,
        starwidth: 16,
        starheight: 16,
        readonly: !1,
        resetable: !0,
        ispreset: !1
    },
    e(function() {
        e("div.rateit, span.rateit").rateit()
    })
})(jQuery); (function() {
    var e = [].indexOf ||
    function(e) {
        for (var t = 0,
        n = this.length; t < n; t++) {
            if (t in this && this[t] === e) return t
        }
        return - 1
    },
    t = [].slice; (function(e, t) {
        if (typeof define === "function" && define.amd) {
            return define("waypoints", ["jquery"],
            function(n) {
                return t(n, e)
            })
        } else {
            return t(e.jQuery, e)
        }
    })(this,
    function(n, r) {
        var i, s, o, u, a, f, l, c, h, p, d, v, m, g, y, b;
        i = n(r);
        c = e.call(r, "ontouchstart") >= 0;
        u = {
            horizontal: {},
            vertical: {}
        };
        a = 1;
        l = {};
        f = "waypoints-context-id";
        d = "resize.waypoints";
        v = "scroll.waypoints";
        m = 1;
        g = "waypoints-waypoint-ids";
        y = "waypoint";
        b = "waypoints";
        s = function() {
            function e(e) {
                var t = this;
                this.$element = e;
                this.element = e[0];
                this.didResize = false;
                this.didScroll = false;
                this.id = "context" + a++;
                this.oldScroll = {
                    x: e.scrollLeft(),
                    y: e.scrollTop()
                };
                this.waypoints = {
                    horizontal: {},
                    vertical: {}
                };
                e.data(f, this.id);
                l[this.id] = this;
                e.bind(v,
                function() {
                    var e;
                    if (! (t.didScroll || c)) {
                        t.didScroll = true;
                        e = function() {
                            t.doScroll();
                            return t.didScroll = false
                        };
                        return r.setTimeout(e, n[b].settings.scrollThrottle)
                    }
                });
                e.bind(d,
                function() {
                    var e;
                    if (!t.didResize) {
                        t.didResize = true;
                        e = function() {
                            n[b]("refresh");
                            return t.didResize = false
                        };
                        return r.setTimeout(e, n[b].settings.resizeThrottle)
                    }
                })
            }
            e.prototype.doScroll = function() {
                var e, t = this;
                e = {
                    horizontal: {
                        newScroll: this.$element.scrollLeft(),
                        oldScroll: this.oldScroll.x,
                        forward: "right",
                        backward: "left"
                    },
                    vertical: {
                        newScroll: this.$element.scrollTop(),
                        oldScroll: this.oldScroll.y,
                        forward: "down",
                        backward: "up"
                    }
                };
                if (c && (!e.vertical.oldScroll || !e.vertical.newScroll)) {
                    n[b]("refresh")
                }
                n.each(e,
                function(e, r) {
                    var i, s, o;
                    o = [];
                    s = r.newScroll > r.oldScroll;
                    i = s ? r.forward: r.backward;
                    n.each(t.waypoints[e],
                    function(e, t) {
                        var n, i;
                        if (r.oldScroll < (n = t.offset) && n <= r.newScroll) {
                            return o.push(t)
                        } else if (r.newScroll < (i = t.offset) && i <= r.oldScroll) {
                            return o.push(t)
                        }
                    });
                    o.sort(function(e, t) {
                        return e.offset - t.offset
                    });
                    if (!s) {
                        o.reverse()
                    }
                    return n.each(o,
                    function(e, t) {
                        if (t.options.continuous || e === o.length - 1) {
                            return t.trigger([i])
                        }
                    })
                });
                return this.oldScroll = {
                    x: e.horizontal.newScroll,
                    y: e.vertical.newScroll
                }
            };
            e.prototype.refresh = function() {
                var e, t, r, i = this;
                r = n.isWindow(this.element);
                t = this.$element.offset();
                this.doScroll();
                e = {
                    horizontal: {
                        contextOffset: r ? 0 : t.left,
                        contextScroll: r ? 0 : this.oldScroll.x,
                        contextDimension: this.$element.width(),
                        oldScroll: this.oldScroll.x,
                        forward: "right",
                        backward: "left",
                        offsetProp: "left"
                    },
                    vertical: {
                        contextOffset: r ? 0 : t.top,
                        contextScroll: r ? 0 : this.oldScroll.y,
                        contextDimension: r ? n[b]("viewportHeight") : this.$element.height(),
                        oldScroll: this.oldScroll.y,
                        forward: "down",
                        backward: "up",
                        offsetProp: "top"
                    }
                };
                return n.each(e,
                function(e, t) {
                    return n.each(i.waypoints[e],
                    function(e, r) {
                        var i, s, o, u, a;
                        i = r.options.offset;
                        o = r.offset;
                        s = n.isWindow(r.element) ? 0 : r.$element.offset()[t.offsetProp];
                        if (n.isFunction(i)) {
                            i = i.apply(r.element)
                        } else if (typeof i === "string") {
                            i = parseFloat(i);
                            if (r.options.offset.indexOf("%") > -1) {
                                i = Math.ceil(t.contextDimension * i / 100)
                            }
                        }
                        r.offset = s - t.contextOffset + t.contextScroll - i;
                        if (r.options.onlyOnScroll && o != null || !r.enabled) {
                            return
                        }
                        if (o !== null && o < (u = t.oldScroll) && u <= r.offset) {
                            return r.trigger([t.backward])
                        } else if (o !== null && o > (a = t.oldScroll) && a >= r.offset) {
                            return r.trigger([t.forward])
                        } else if (o === null && t.oldScroll >= r.offset) {
                            return r.trigger([t.forward])
                        }
                    })
                })
            };
            e.prototype.checkEmpty = function() {
                if (n.isEmptyObject(this.waypoints.horizontal) && n.isEmptyObject(this.waypoints.vertical)) {
                    this.$element.unbind([d, v].join(" "));
                    return delete l[this.id]
                }
            };
            return e
        } ();
        o = function() {
            function e(e, t, r) {
                var i, s;
                r = n.extend({},
                n.fn[y].defaults, r);
                if (r.offset === "bottom-in-view") {
                    r.offset = function() {
                        var e;
                        e = n[b]("viewportHeight");
                        if (!n.isWindow(t.element)) {
                            e = t.$element.height()
                        }
                        return e - n(this).outerHeight()
                    }
                }
                this.$element = e;
                this.element = e[0];
                this.axis = r.horizontal ? "horizontal": "vertical";
                this.callback = r.handler;
                this.context = t;
                this.enabled = r.enabled;
                this.id = "waypoints" + m++;
                this.offset = null;
                this.options = r;
                t.waypoints[this.axis][this.id] = this;
                u[this.axis][this.id] = this;
                i = (s = e.data(g)) != null ? s: [];
                i.push(this.id);
                e.data(g, i)
            }
            e.prototype.trigger = function(e) {
                if (!this.enabled) {
                    return
                }
                if (this.callback != null) {
                    this.callback.apply(this.element, e)
                }
                if (this.options.triggerOnce) {
                    return this.destroy()
                }
            };
            e.prototype.disable = function() {
                return this.enabled = false
            };
            e.prototype.enable = function() {
                this.context.refresh();
                return this.enabled = true
            };
            e.prototype.destroy = function() {
                delete u[this.axis][this.id];
                delete this.context.waypoints[this.axis][this.id];
                return this.context.checkEmpty()
            };
            e.getWaypointsByElement = function(e) {
                var t, r;
                r = n(e).data(g);
                if (!r) {
                    return []
                }
                t = n.extend({},
                u.horizontal, u.vertical);
                return n.map(r,
                function(e) {
                    return t[e]
                })
            };
            return e
        } ();
        p = {
            init: function(e, t) {
                var r;
                if (t == null) {
                    t = {}
                }
                if ((r = t.handler) == null) {
                    t.handler = e
                }
                this.each(function() {
                    var e, r, i, u;
                    e = n(this);
                    i = (u = t.context) != null ? u: n.fn[y].defaults.context;
                    if (!n.isWindow(i)) {
                        i = e.closest(i)
                    }
                    i = n(i);
                    r = l[i.data(f)];
                    if (!r) {
                        r = new s(i)
                    }
                    return new o(e, r, t)
                });
                n[b]("refresh");
                return this
            },
            disable: function() {
                return p._invoke(this, "disable")
            },
            enable: function() {
                return p._invoke(this, "enable")
            },
            destroy: function() {
                return p._invoke(this, "destroy")
            },
            prev: function(e, t) {
                return p._traverse.call(this, e, t,
                function(e, t, n) {
                    if (t > 0) {
                        return e.push(n[t - 1])
                    }
                })
            },
            next: function(e, t) {
                return p._traverse.call(this, e, t,
                function(e, t, n) {
                    if (t < n.length - 1) {
                        return e.push(n[t + 1])
                    }
                })
            },
            _traverse: function(e, t, i) {
                var s, o;
                if (e == null) {
                    e = "vertical"
                }
                if (t == null) {
                    t = r
                }
                o = h.aggregate(t);
                s = [];
                this.each(function() {
                    var t;
                    t = n.inArray(this, o[e]);
                    return i(s, t, o[e])
                });
                return this.pushStack(s)
            },
            _invoke: function(e, t) {
                e.each(function() {
                    var e;
                    e = o.getWaypointsByElement(this);
                    return n.each(e,
                    function(e, n) {
                        n[t]();
                        return true
                    })
                });
                return this
            }
        };
        n.fn[y] = function() {
            var e, r;
            r = arguments[0],
            e = 2 <= arguments.length ? t.call(arguments, 1) : [];
            if (p[r]) {
                return p[r].apply(this, e)
            } else if (n.isFunction(r)) {
                return p.init.apply(this, arguments)
            } else if (n.isPlainObject(r)) {
                return p.init.apply(this, [null, r])
            } else if (!r) {
                return n.error("jQuery Waypoints needs a callback function or handler option.")
            } else {
                return n.error("The " + r + " method does not exist in jQuery Waypoints.")
            }
        };
        n.fn[y].defaults = {
            context: r,
            continuous: true,
            enabled: true,
            horizontal: false,
            offset: 0,
            triggerOnce: false
        };
        h = {
            refresh: function() {
                return n.each(l,
                function(e, t) {
                    return t.refresh()
                })
            },
            viewportHeight: function() {
                var e;
                return (e = r.innerHeight) != null ? e: i.height()
            },
            aggregate: function(e) {
                var t, r, i;
                t = u;
                if (e) {
                    t = (i = l[n(e).data(f)]) != null ? i.waypoints: void 0
                }
                if (!t) {
                    return []
                }
                r = {
                    horizontal: [],
                    vertical: []
                };
                n.each(r,
                function(e, i) {
                    n.each(t[e],
                    function(e, t) {
                        return i.push(t)
                    });
                    i.sort(function(e, t) {
                        return e.offset - t.offset
                    });
                    r[e] = n.map(i,
                    function(e) {
                        return e.element
                    });
                    return r[e] = n.unique(r[e])
                });
                return r
            },
            above: function(e) {
                if (e == null) {
                    e = r
                }
                return h._filter(e, "vertical",
                function(e, t) {
                    return t.offset <= e.oldScroll.y
                })
            },
            below: function(e) {
                if (e == null) {
                    e = r
                }
                return h._filter(e, "vertical",
                function(e, t) {
                    return t.offset > e.oldScroll.y
                })
            },
            left: function(e) {
                if (e == null) {
                    e = r
                }
                return h._filter(e, "horizontal",
                function(e, t) {
                    return t.offset <= e.oldScroll.x
                })
            },
            right: function(e) {
                if (e == null) {
                    e = r
                }
                return h._filter(e, "horizontal",
                function(e, t) {
                    return t.offset > e.oldScroll.x
                })
            },
            enable: function() {
                return h._invoke("enable")
            },
            disable: function() {
                return h._invoke("disable")
            },
            destroy: function() {
                return h._invoke("destroy")
            },
            extendFn: function(e, t) {
                return p[e] = t
            },
            _invoke: function(e) {
                var t;
                t = n.extend({},
                u.vertical, u.horizontal);
                return n.each(t,
                function(t, n) {
                    n[e]();
                    return true
                })
            },
            _filter: function(e, t, r) {
                var i, s;
                i = l[n(e).data(f)];
                if (!i) {
                    return []
                }
                s = [];
                n.each(i.waypoints[t],
                function(e, t) {
                    if (r(i, t)) {
                        return s.push(t)
                    }
                });
                s.sort(function(e, t) {
                    return e.offset - t.offset
                });
                return n.map(s,
                function(e) {
                    return e.element
                })
            }
        };
        n[b] = function() {
            var e, n;
            n = arguments[0],
            e = 2 <= arguments.length ? t.call(arguments, 1) : [];
            if (h[n]) {
                return h[n].apply(null, e)
            } else {
                return h.aggregate.call(null, n)
            }
        };
        n[b].settings = {
            resizeThrottle: 100,
            scrollThrottle: 30
        };
        return i.load(function() {
            return n[b]("refresh")
        })
    })
}).call(this); (function() {
    "use strict";
    function e() {}
    function t(e, t) {
        for (var n = e.length; n--;) if (e[n].listener === t) return n;
        return - 1
    }
    var n = e.prototype;
    n.getListeners = function(e) {
        var t, n, r = this._getEvents();
        if ("object" == typeof e) {
            t = {};
            for (n in r) r.hasOwnProperty(n) && e.test(n) && (t[n] = r[n])
        } else t = r[e] || (r[e] = []);
        return t
    },
    n.flattenListeners = function(e) {
        var t, n = [];
        for (t = 0; e.length > t; t += 1) n.push(e[t].listener);
        return n
    },
    n.getListenersAsObject = function(e) {
        var t, n = this.getListeners(e);
        return n instanceof Array && (t = {},
        t[e] = n),
        t || n
    },
    n.addListener = function(e, n) {
        var r, i = this.getListenersAsObject(e),
        s = "object" == typeof n;
        for (r in i) i.hasOwnProperty(r) && -1 === t(i[r], n) && i[r].push(s ? n: {
            listener: n,
            once: !1
        });
        return this
    },
    n.on = n.addListener,
    n.addOnceListener = function(e, t) {
        return this.addListener(e, {
            listener: t,
            once: !0
        })
    },
    n.once = n.addOnceListener,
    n.defineEvent = function(e) {
        return this.getListeners(e),
        this
    },
    n.defineEvents = function(e) {
        for (var t = 0; e.length > t; t += 1) this.defineEvent(e[t]);
        return this
    },
    n.removeListener = function(e, n) {
        var r, i, s = this.getListenersAsObject(e);
        for (i in s) s.hasOwnProperty(i) && (r = t(s[i], n), -1 !== r && s[i].splice(r, 1));
        return this
    },
    n.off = n.removeListener,
    n.addListeners = function(e, t) {
        return this.manipulateListeners(!1, e, t)
    },
    n.removeListeners = function(e, t) {
        return this.manipulateListeners(!0, e, t)
    },
    n.manipulateListeners = function(e, t, n) {
        var r, i, s = e ? this.removeListener: this.addListener,
        o = e ? this.removeListeners: this.addListeners;
        if ("object" != typeof t || t instanceof RegExp) for (r = n.length; r--;) s.call(this, t, n[r]);
        else for (r in t) t.hasOwnProperty(r) && (i = t[r]) && ("function" == typeof i ? s.call(this, r, i) : o.call(this, r, i));
        return this
    },
    n.removeEvent = function(e) {
        var t, n = typeof e,
        r = this._getEvents();
        if ("string" === n) delete r[e];
        else if ("object" === n) for (t in r) r.hasOwnProperty(t) && e.test(t) && delete r[t];
        else delete this._events;
        return this
    },
    n.emitEvent = function(e, t) {
        var n, r, i, s, o = this.getListenersAsObject(e);
        for (i in o) if (o.hasOwnProperty(i)) for (r = o[i].length; r--;) n = o[i][r],
        s = n.listener.apply(this, t || []),
        (s === this._getOnceReturnValue() || n.once === !0) && this.removeListener(e, o[i][r].listener);
        return this
    },
    n.trigger = n.emitEvent,
    n.emit = function(e) {
        var t = Array.prototype.slice.call(arguments, 1);
        return this.emitEvent(e, t)
    },
    n.setOnceReturnValue = function(e) {
        return this._onceReturnValue = e,
        this
    },
    n._getOnceReturnValue = function() {
        return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue: !0
    },
    n._getEvents = function() {
        return this._events || (this._events = {})
    },
    "function" == typeof define && define.amd ? define(function() {
        return e
    }) : "undefined" != typeof module && module.exports ? module.exports = e: this.EventEmitter = e
}).call(this),
function(e) {
    "use strict";
    var t = document.documentElement,
    n = function() {};
    t.addEventListener ? n = function(e, t, n) {
        e.addEventListener(t, n, !1)
    }: t.attachEvent && (n = function(t, n, r) {
        t[n + r] = r.handleEvent ?
        function() {
            var t = e.event;
            t.target = t.target || t.srcElement,
            r.handleEvent.call(r, t)
        }: function() {
            var n = e.event;
            n.target = n.target || n.srcElement,
            r.call(t, n)
        },
        t.attachEvent("on" + n, t[n + r])
    });
    var r = function() {};
    t.removeEventListener ? r = function(e, t, n) {
        e.removeEventListener(t, n, !1)
    }: t.detachEvent && (r = function(e, t, n) {
        e.detachEvent("on" + t, e[t + n]);
        try {
            delete e[t + n]
        } catch(r) {
            e[t + n] = void 0
        }
    });
    var i = {
        bind: n,
        unbind: r
    };
    "function" == typeof define && define.amd ? define(i) : e.eventie = i
} (this),
function(e) {
    "use strict";
    function t(e, t) {
        for (var n in t) e[n] = t[n];
        return e
    }
    function n(e) {
        return "[object Array]" === a.call(e)
    }
    function r(e) {
        var t = [];
        if (n(e)) t = e;
        else if ("number" == typeof e.length) for (var r = 0,
        i = e.length; i > r; r++) t.push(e[r]);
        else t.push(e);
        return t
    }
    function i(e, n) {
        function i(e, n, o) {
            if (! (this instanceof i)) return new i(e, n);
            "string" == typeof e && (e = document.querySelectorAll(e)),
            this.elements = r(e),
            this.options = t({},
            this.options),
            "function" == typeof n ? o = n: t(this.options, n),
            o && this.on("always", o),
            this.getImages(),
            s && (this.jqDeferred = new s.Deferred);
            var u = this;
            setTimeout(function() {
                u.check()
            })
        }
        function a(e) {
            this.img = e
        }
        i.prototype = new e,
        i.prototype.options = {},
        i.prototype.getImages = function() {
            this.images = [];
            for (var e = 0,
            t = this.elements.length; t > e; e++) {
                var n = this.elements[e];
                "IMG" === n.nodeName && this.addImage(n);
                for (var r = n.querySelectorAll("img"), i = 0, s = r.length; s > i; i++) {
                    var o = r[i];
                    this.addImage(o)
                }
            }
        },
        i.prototype.addImage = function(e) {
            var t = new a(e);
            this.images.push(t)
        },
        i.prototype.check = function() {
            function e(e, i) {
                return t.options.debug && u && o.log("confirm", e, i),
                t.progress(e),
                n++,
                n === r && t.complete(),
                !0
            }
            var t = this,
            n = 0,
            r = this.images.length;
            if (this.hasAnyBroken = !1, !r) return this.complete(),
            void 0;
            for (var i = 0; r > i; i++) {
                var s = this.images[i];
                s.on("confirm", e),
                s.check()
            }
        },
        i.prototype.progress = function(e) {
            this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded;
            var t = this;
            setTimeout(function() {
                t.emit("progress", t, e),
                t.jqDeferred && t.jqDeferred.notify(t, e)
            })
        },
        i.prototype.complete = function() {
            var e = this.hasAnyBroken ? "fail": "done";
            this.isComplete = !0;
            var t = this;
            setTimeout(function() {
                if (t.emit(e, t), t.emit("always", t), t.jqDeferred) {
                    var n = t.hasAnyBroken ? "reject": "resolve";
                    t.jqDeferred[n](t)
                }
            })
        },
        s && (s.fn.imagesLoaded = function(e, t) {
            var n = new i(this, e, t);
            return n.jqDeferred.promise(s(this))
        });
        var f = {};
        return a.prototype = new e,
        a.prototype.check = function() {
            var e = f[this.img.src];
            if (e) return this.useCached(e),
            void 0;
            if (f[this.img.src] = this, this.img.complete && void 0 !== this.img.naturalWidth) return this.confirm(0 !== this.img.naturalWidth, "naturalWidth"),
            void 0;
            var t = this.proxyImage = new Image;
            n.bind(t, "load", this),
            n.bind(t, "error", this),
            t.src = this.img.src
        },
        a.prototype.useCached = function(e) {
            if (e.isConfirmed) this.confirm(e.isLoaded, "cached was confirmed");
            else {
                var t = this;
                e.on("confirm",
                function(e) {
                    return t.confirm(e.isLoaded, "cache emitted confirmed"),
                    !0
                })
            }
        },
        a.prototype.confirm = function(e, t) {
            this.isConfirmed = !0,
            this.isLoaded = e,
            this.emit("confirm", this, t)
        },
        a.prototype.handleEvent = function(e) {
            var t = "on" + e.type;
            this[t] && this[t](e)
        },
        a.prototype.onload = function() {
            this.confirm(!0, "onload"),
            this.unbindProxyEvents()
        },
        a.prototype.onerror = function() {
            this.confirm(!1, "onerror"),
            this.unbindProxyEvents()
        },
        a.prototype.unbindProxyEvents = function() {
            n.unbind(this.proxyImage, "load", this),
            n.unbind(this.proxyImage, "error", this)
        },
        i
    }
    var s = e.jQuery,
    o = e.console,
    u = o !== void 0,
    a = Object.prototype.toString;
    "function" == typeof define && define.amd ? define(["eventEmitter/EventEmitter", "eventie/eventie"], i) : e.imagesLoaded = i(e.EventEmitter, e.eventie)
} (window); (function(e) {
    e.fn.hoverIntent = function(t, n, r) {
        var i = {
            interval: 100,
            sensitivity: 7,
            timeout: 0
        };
        if (typeof t === "object") {
            i = e.extend(i, t)
        } else if (e.isFunction(n)) {
            i = e.extend(i, {
                over: t,
                out: n,
                selector: r
            })
        } else {
            i = e.extend(i, {
                over: t,
                out: t,
                selector: n
            })
        }
        var s, o, u, a;
        var f = function(e) {
            s = e.pageX;
            o = e.pageY
        };
        var l = function(t, n) {
            n.hoverIntent_t = clearTimeout(n.hoverIntent_t);
            if (Math.abs(u - s) + Math.abs(a - o) < i.sensitivity) {
                e(n).off("mousemove.hoverIntent", f);
                n.hoverIntent_s = 1;
                return i.over.apply(n, [t])
            } else {
                u = s;
                a = o;
                n.hoverIntent_t = setTimeout(function() {
                    l(t, n)
                },
                i.interval)
            }
        };
        var c = function(e, t) {
            t.hoverIntent_t = clearTimeout(t.hoverIntent_t);
            t.hoverIntent_s = 0;
            return i.out.apply(t, [e])
        };
        var h = function(t) {
            var n = jQuery.extend({},
            t);
            var r = this;
            if (r.hoverIntent_t) {
                r.hoverIntent_t = clearTimeout(r.hoverIntent_t)
            }
            if (t.type == "mouseenter") {
                u = n.pageX;
                a = n.pageY;
                e(r).on("mousemove.hoverIntent", f);
                if (r.hoverIntent_s != 1) {
                    r.hoverIntent_t = setTimeout(function() {
                        l(n, r)
                    },
                    i.interval)
                }
            } else {
                e(r).off("mousemove.hoverIntent", f);
                if (r.hoverIntent_s == 1) {
                    r.hoverIntent_t = setTimeout(function() {
                        c(n, r)
                    },
                    i.timeout)
                }
            }
        };
        return this.on({
            "mouseenter.hoverIntent": h,
            "mouseleave.hoverIntent": h
        },
        i.selector)
    }
})(jQuery); (function(e, t, n) {
    "use strict";
    var r = t.Modernizr,
    i = e("body");
    e.DLMenu = function(t, n) {
        this.$el = e(n);
        this._init(t)
    };
    e.DLMenu.defaults = {
        animationClasses: {
            classin: "dl-animate-in-1",
            classout: "dl-animate-out-1"
        },
        onLevelClick: function(e, t) {
            return false
        },
        onLinkClick: function(e, t) {
            return false
        }
    };
    e.DLMenu.prototype = {
        _init: function(t) {
            this.options = e.extend(true, {},
            e.DLMenu.defaults, t);
            this._config();
            var n = {
                WebkitAnimation: "webkitAnimationEnd",
                OAnimation: "oAnimationEnd",
                msAnimation: "MSAnimationEnd",
                animation: "animationend"
            },
            i = {
                WebkitTransition: "webkitTransitionEnd",
                MozTransition: "transitionend",
                OTransition: "oTransitionEnd",
                msTransition: "MSTransitionEnd",
                transition: "transitionend"
            };
            this.animEndEventName = n[r.prefixed("animation")] + ".dlmenu";
            this.transEndEventName = i[r.prefixed("transition")] + ".dlmenu",
            this.supportAnimations = r.cssanimations,
            this.supportTransitions = r.csstransitions;
            this._initEvents()
        },
        _config: function() {
            this.open = false;
            this.$trigger = this.$el.children(".dl-trigger");
            this.$menu = this.$el.children("ul.dl-menu");
            this.$menuitems = this.$menu.find("li:not(.dl-back)");
            this.$el.find("ul.dl-submenu").prepend('<li class="dl-back"><a href="#">back</a></li>');
            this.$back = this.$menu.find("li.dl-back")
        },
        _initEvents: function() {
            var t = this;
            this.$trigger.on("click.dlmenu",
            function() {
                if (t.open) {
                    t._closeMenu()
                } else {
                    t._openMenu()
                }
                return false
            });
            this.$menuitems.on("click.dlmenu",
            function(n) {
                n.stopPropagation();
                var r = e(this),
                i = r.children("ul.dl-submenu");
                if (i.length > 0) {
                    var s = i.clone().css("opacity", 0).insertAfter(t.$menu),
                    o = function() {
                        t.$menu.off(t.animEndEventName).removeClass(t.options.animationClasses.classout).addClass("dl-subview");
                        r.addClass("dl-subviewopen").parents(".dl-subviewopen:first").removeClass("dl-subviewopen").addClass("dl-subview");
                        s.remove()
                    };
                    setTimeout(function() {
                        s.addClass(t.options.animationClasses.classin);
                        t.$menu.addClass(t.options.animationClasses.classout);
                        if (t.supportAnimations) {
                            t.$menu.on(t.animEndEventName, o)
                        } else {
                            o.call()
                        }
                        t.options.onLevelClick(r, r.children("a:first").text())
                    });
                    return false
                } else {
                    t.options.onLinkClick(r, n)
                }
            });
            this.$back.on("click.dlmenu",
            function(n) {
                var r = e(this),
                i = r.parents("ul.dl-submenu:first"),
                s = i.parent(),
                o = i.clone().insertAfter(t.$menu);
                var u = function() {
                    t.$menu.off(t.animEndEventName).removeClass(t.options.animationClasses.classin);
                    o.remove()
                };
                setTimeout(function() {
                    o.addClass(t.options.animationClasses.classout);
                    t.$menu.addClass(t.options.animationClasses.classin);
                    if (t.supportAnimations) {
                        t.$menu.on(t.animEndEventName, u)
                    } else {
                        u.call()
                    }
                    s.removeClass("dl-subviewopen");
                    var e = r.parents(".dl-subview:first");
                    if (e.is("li")) {
                        e.addClass("dl-subviewopen")
                    }
                    e.removeClass("dl-subview")
                });
                return false
            })
        },
        closeMenu: function() {
            if (this.open) {
                this._closeMenu()
            }
        },
        _closeMenu: function() {
            var e = this,
            t = function() {
                e.$menu.off(e.transEndEventName);
                e._resetMenu()
            };
            this.$menu.removeClass("dl-menuopen");
            this.$menu.addClass("dl-menu-toggle");
            this.$trigger.removeClass("dl-active");
            if (this.supportTransitions) {
                this.$menu.on(this.transEndEventName, t)
            } else {
                t.call()
            }
            this.open = false
        },
        openMenu: function() {
            if (!this.open) {
                this._openMenu()
            }
        },
        _openMenu: function() {
            var t = this;
            i.off("click").on("click.dlmenu",
            function() {
                t._closeMenu()
            });
            this.$menu.addClass("dl-menuopen dl-menu-toggle").on(this.transEndEventName,
            function() {
                e(this).removeClass("dl-menu-toggle")
            });
            this.$trigger.addClass("dl-active");
            this.open = true
        },
        _resetMenu: function() {
            this.$menu.removeClass("dl-subview");
            this.$menuitems.removeClass("dl-subview dl-subviewopen")
        }
    };
    var s = function(e) {
        if (t.console) {
            t.console.error(e)
        }
    };
    e.fn.dlmenu = function(t) {
        if (typeof t === "string") {
            var n = Array.prototype.slice.call(arguments, 1);
            this.each(function() {
                var r = e.data(this, "dlmenu");
                if (!r) {
                    s("cannot call methods on dlmenu prior to initialization; " + "attempted to call method '" + t + "'");
                    return
                }
                if (!e.isFunction(r[t]) || t.charAt(0) === "_") {
                    s("no such method '" + t + "' for dlmenu instance");
                    return
                }
                r[t].apply(r, n)
            })
        } else {
            this.each(function() {
                var n = e.data(this, "dlmenu");
                if (n) {
                    n._init()
                } else {
                    n = e.data(this, "dlmenu", new e.DLMenu(t, this))
                }
            })
        }
        return this
    }
})(jQuery, window); (function(e) {
    if (typeof define === "function" && define.amd) {
        define(["jquery"], e)
    } else if (typeof exports === "object") {
        module.exports = e
    } else {
        e(jQuery)
    }
})(function(e) {
    function o(t) {
        var n = t || window.event,
        s = [].slice.call(arguments, 1),
        o = 0,
        u = 0,
        a = 0,
        f = 0,
        l = 0,
        c;
        t = e.event.fix(n);
        t.type = "mousewheel";
        if (n.wheelDelta) {
            o = n.wheelDelta
        }
        if (n.detail) {
            o = n.detail * -1
        }
        if (n.deltaY) {
            a = n.deltaY * -1;
            o = a
        }
        if (n.deltaX) {
            u = n.deltaX;
            o = u * -1
        }
        if (n.wheelDeltaY !== undefined) {
            a = n.wheelDeltaY
        }
        if (n.wheelDeltaX !== undefined) {
            u = n.wheelDeltaX * -1
        }
        f = Math.abs(o);
        if (!r || f < r) {
            r = f
        }
        l = Math.max(Math.abs(a), Math.abs(u));
        if (!i || l < i) {
            i = l
        }
        c = o > 0 ? "floor": "ceil";
        o = Math[c](o / r);
        u = Math[c](u / i);
        a = Math[c](a / i);
        s.unshift(t, o, u, a);
        return (e.event.dispatch || e.event.handle).apply(this, s)
    }
    var t = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"];
    var n = "onwheel" in document || document.documentMode >= 9 ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"];
    var r, i;
    if (e.event.fixHooks) {
        for (var s = t.length; s;) {
            e.event.fixHooks[t[--s]] = e.event.mouseHooks
        }
    }
    e.event.special.mousewheel = {
        setup: function() {
            if (this.addEventListener) {
                for (var e = n.length; e;) {
                    this.addEventListener(n[--e], o, false)
                }
            } else {
                this.onmousewheel = o
            }
        },
        teardown: function() {
            if (this.removeEventListener) {
                for (var e = n.length; e;) {
                    this.removeEventListener(n[--e], o, false)
                }
            } else {
                this.onmousewheel = null
            }
        }
    };
    e.fn.extend({
        mousewheel: function(e) {
            return e ? this.bind("mousewheel", e) : this.trigger("mousewheel")
        },
        unmousewheel: function(e) {
            return this.unbind("mousewheel", e)
        }
    })
});
jQuery.easing["jswing"] = jQuery.easing["swing"];
jQuery.extend(jQuery.easing, {
    def: "easeOutQuad",
    swing: function(e, t, n, r, i) {
        return jQuery.easing[jQuery.easing.def](e, t, n, r, i)
    },
    easeInQuad: function(e, t, n, r, i) {
        return r * (t /= i) * t + n
    },
    easeOutQuad: function(e, t, n, r, i) {
        return - r * (t /= i) * (t - 2) + n
    },
    easeInOutQuad: function(e, t, n, r, i) {
        if ((t /= i / 2) < 1) return r / 2 * t * t + n;
        return - r / 2 * (--t * (t - 2) - 1) + n
    },
    easeInCubic: function(e, t, n, r, i) {
        return r * (t /= i) * t * t + n
    },
    easeOutCubic: function(e, t, n, r, i) {
        return r * ((t = t / i - 1) * t * t + 1) + n
    },
    easeInOutCubic: function(e, t, n, r, i) {
        if ((t /= i / 2) < 1) return r / 2 * t * t * t + n;
        return r / 2 * ((t -= 2) * t * t + 2) + n
    },
    easeInQuart: function(e, t, n, r, i) {
        return r * (t /= i) * t * t * t + n
    },
    easeOutQuart: function(e, t, n, r, i) {
        return - r * ((t = t / i - 1) * t * t * t - 1) + n
    },
    easeInOutQuart: function(e, t, n, r, i) {
        if ((t /= i / 2) < 1) return r / 2 * t * t * t * t + n;
        return - r / 2 * ((t -= 2) * t * t * t - 2) + n
    },
    easeInQuint: function(e, t, n, r, i) {
        return r * (t /= i) * t * t * t * t + n
    },
    easeOutQuint: function(e, t, n, r, i) {
        return r * ((t = t / i - 1) * t * t * t * t + 1) + n
    },
    easeInOutQuint: function(e, t, n, r, i) {
        if ((t /= i / 2) < 1) return r / 2 * t * t * t * t * t + n;
        return r / 2 * ((t -= 2) * t * t * t * t + 2) + n
    },
    easeInSine: function(e, t, n, r, i) {
        return - r * Math.cos(t / i * (Math.PI / 2)) + r + n
    },
    easeOutSine: function(e, t, n, r, i) {
        return r * Math.sin(t / i * (Math.PI / 2)) + n
    },
    easeInOutSine: function(e, t, n, r, i) {
        return - r / 2 * (Math.cos(Math.PI * t / i) - 1) + n
    },
    easeInExpo: function(e, t, n, r, i) {
        return t == 0 ? n: r * Math.pow(2, 10 * (t / i - 1)) + n
    },
    easeOutExpo: function(e, t, n, r, i) {
        return t == i ? n + r: r * ( - Math.pow(2, -10 * t / i) + 1) + n
    },
    easeInOutExpo: function(e, t, n, r, i) {
        if (t == 0) return n;
        if (t == i) return n + r;
        if ((t /= i / 2) < 1) return r / 2 * Math.pow(2, 10 * (t - 1)) + n;
        return r / 2 * ( - Math.pow(2, -10 * --t) + 2) + n
    },
    easeInCirc: function(e, t, n, r, i) {
        return - r * (Math.sqrt(1 - (t /= i) * t) - 1) + n
    },
    easeOutCirc: function(e, t, n, r, i) {
        return r * Math.sqrt(1 - (t = t / i - 1) * t) + n
    },
    easeInOutCirc: function(e, t, n, r, i) {
        if ((t /= i / 2) < 1) return - r / 2 * (Math.sqrt(1 - t * t) - 1) + n;
        return r / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + n
    },
    easeInElastic: function(e, t, n, r, i) {
        var s = 1.70158;
        var o = 0;
        var u = r;
        if (t == 0) return n;
        if ((t /= i) == 1) return n + r;
        if (!o) o = i * .3;
        if (u < Math.abs(r)) {
            u = r;
            var s = o / 4
        } else var s = o / (2 * Math.PI) * Math.asin(r / u);
        return - (u * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * i - s) * 2 * Math.PI / o)) + n
    },
    easeOutElastic: function(e, t, n, r, i) {
        var s = 1.70158;
        var o = 0;
        var u = r;
        if (t == 0) return n;
        if ((t /= i) == 1) return n + r;
        if (!o) o = i * .3;
        if (u < Math.abs(r)) {
            u = r;
            var s = o / 4
        } else var s = o / (2 * Math.PI) * Math.asin(r / u);
        return u * Math.pow(2, -10 * t) * Math.sin((t * i - s) * 2 * Math.PI / o) + r + n
    },
    easeInOutElastic: function(e, t, n, r, i) {
        var s = 1.70158;
        var o = 0;
        var u = r;
        if (t == 0) return n;
        if ((t /= i / 2) == 2) return n + r;
        if (!o) o = i * .3 * 1.5;
        if (u < Math.abs(r)) {
            u = r;
            var s = o / 4
        } else var s = o / (2 * Math.PI) * Math.asin(r / u);
        if (t < 1) return - .5 * u * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * i - s) * 2 * Math.PI / o) + n;
        return u * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * i - s) * 2 * Math.PI / o) * .5 + r + n
    },
    easeInBack: function(e, t, n, r, i, s) {
        if (s == undefined) s = 1.70158;
        return r * (t /= i) * t * ((s + 1) * t - s) + n
    },
    easeOutBack: function(e, t, n, r, i, s) {
        if (s == undefined) s = 1.70158;
        return r * ((t = t / i - 1) * t * ((s + 1) * t + s) + 1) + n
    },
    easeInOutBack: function(e, t, n, r, i, s) {
        if (s == undefined) s = 1.70158;
        if ((t /= i / 2) < 1) return r / 2 * t * t * (((s *= 1.525) + 1) * t - s) + n;
        return r / 2 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + n
    },
    easeInBounce: function(e, t, n, r, i) {
        return r - jQuery.easing.easeOutBounce(e, i - t, 0, r, i) + n
    },
    easeOutBounce: function(e, t, n, r, i) {
        if ((t /= i) < 1 / 2.75) {
            return r * 7.5625 * t * t + n
        } else if (t < 2 / 2.75) {
            return r * (7.5625 * (t -= 1.5 / 2.75) * t + .75) + n
        } else if (t < 2.5 / 2.75) {
            return r * (7.5625 * (t -= 2.25 / 2.75) * t + .9375) + n
        } else {
            return r * (7.5625 * (t -= 2.625 / 2.75) * t + .984375) + n
        }
    },
    easeInOutBounce: function(e, t, n, r, i) {
        if (t < i / 2) return jQuery.easing.easeInBounce(e, t * 2, 0, r, i) * .5 + n;
        return jQuery.easing.easeOutBounce(e, t * 2 - i, 0, r, i) * .5 + r * .5 + n
    }
}); (function(e) {
    var t = e.event,
    n, r = {
        _: 0
    },
    i = 0,
    s,
    o;
    n = t.special.throttledresize = {
        setup: function() {
            e(this).on("resize", n.handler)
        },
        teardown: function() {
            e(this).off("resize", n.handler)
        },
        handler: function(u, a) {
            var f = this,
            l = arguments;
            s = true;
            if (!o) {
                setInterval(function() {
                    i++;
                    if (i > n.threshold && s || a) {
                        u.type = "throttledresize";
                        t.dispatch.apply(f, l);
                        s = false;
                        i = 0
                    }
                    if (i > 9) {
                        e(r).stop();
                        o = false;
                        i = 0
                    }
                },
                30);
                o = true
            }
        },
        threshold: 0
    }
})(jQuery); (function(e) {
    var t = e.event,
    n, r;
    n = t.special.debouncedresize = {
        setup: function() {
            e(this).on("resize", n.handler)
        },
        teardown: function() {
            e(this).off("resize", n.handler)
        },
        handler: function(e, i) {
            var s = this,
            o = arguments,
            u = function() {
                e.type = "debouncedresize";
                t.dispatch.apply(s, o)
            };
            if (r) {
                clearTimeout(r)
            }
            i ? u() : r = setTimeout(u, n.threshold)
        },
        threshold: 150
    }
})(jQuery); (function(e) {
    function t(t) {
        if (t && void 0 === t.allowPageScroll && (void 0 !== t.swipe || void 0 !== t.swipeStatus)) t.allowPageScroll = u;
        t || (t = {});
        t = e.extend({},
        e.fn.swipe.defaults, t);
        return this.each(function() {
            var r = e(this),
            i = r.data(g);
            i || (i = new n(this, t), r.data(g, i))
        })
    }
    function n(t, n) {
        function k(e) {
            var e = e.originalEvent,
            t, r = m ? e.touches[0] : e;
            Y = h;
            m ? Z = e.touches.length: e.preventDefault();
            $ = 0;
            J = null;
            K = 0; ! m || Z === n.fingers || n.fingers === c ? (E = y = r.pageX, S = b = r.pageY, et = (new Date).getTime(), n.swipeStatus && (t = D(e, Y))) : _(e);
            if (!1 === t) return Y = v,
            D(e, Y),
            t;
            Q.bind(W, L);
            Q.bind(X, O)
        }
        function L(e) {
            e = e.originalEvent;
            if (! (Y === d || Y === v)) {
                var t, h = m ? e.touches[0] : e;
                y = h.pageX;
                b = h.pageY;
                tt = (new Date).getTime();
                J = j();
                m && (Z = e.touches.length);
                Y = p;
                var h = e,
                g = J;
                if (n.allowPageScroll === u) h.preventDefault();
                else {
                    var w = n.allowPageScroll === a;
                    switch (g) {
                    case r:
                        (n.swipeLeft && w || !w && n.allowPageScroll != f) && h.preventDefault();
                        break;
                    case i:
                        (n.swipeRight && w || !w && n.allowPageScroll != f) && h.preventDefault();
                        break;
                    case s:
                        (n.swipeUp && w || !w && n.allowPageScroll != l) && h.preventDefault();
                        break;
                    case o:
                        (n.swipeDown && w || !w && n.allowPageScroll != l) && h.preventDefault()
                    }
                }
                Z === n.fingers || n.fingers === c || !m ? ($ = H(), K = tt - et, n.swipeStatus && (t = D(e, Y, J, $, K)), n.triggerOnTouchEnd || (h = !(n.maxTimeThreshold ? !(K >= n.maxTimeThreshold) : 1), !0 === P() ? (Y = d, t = D(e, Y)) : h && (Y = v, D(e, Y)))) : (Y = v, D(e, Y)); ! 1 === t && (Y = v, D(e, Y))
            }
        }
        function O(e) {
            e = e.originalEvent;
            e.preventDefault();
            tt = (new Date).getTime();
            $ = H();
            J = j();
            K = tt - et;
            if (n.triggerOnTouchEnd || !1 === n.triggerOnTouchEnd && Y === p) if (Y = d, (Z === n.fingers || n.fingers === c || !m) && 0 !== y) {
                var t = !(n.maxTimeThreshold ? !(K >= n.maxTimeThreshold) : 1);
                if ((!0 === P() || null === P()) && !t) D(e, Y);
                else if (t || !1 === P()) Y = v,
                D(e, Y)
            } else Y = v,
            D(e, Y);
            else Y === p && (Y = v, D(e, Y));
            Q.unbind(W, L, !1);
            Q.unbind(X, O, !1)
        }
        function _() {
            et = tt = b = y = S = E = Z = 0
        }
        function D(e, t) {
            var u = void 0;
            n.swipeStatus && (u = n.swipeStatus.call(Q, e, t, J || null, $ || 0, K || 0, Z));
            if (t === v && n.click && (1 === Z || !m) && (isNaN($) || 0 === $)) u = n.click.call(Q, e, e.target);
            if (t == d) switch (n.swipe && (u = n.swipe.call(Q, e, J, $, K, Z)), J) {
            case r:
                n.swipeLeft && (u = n.swipeLeft.call(Q, e, J, $, K, Z));
                break;
            case i:
                n.swipeRight && (u = n.swipeRight.call(Q, e, J, $, K, Z));
                break;
            case s:
                n.swipeUp && (u = n.swipeUp.call(Q, e, J, $, K, Z));
                break;
            case o:
                n.swipeDown && (u = n.swipeDown.call(Q, e, J, $, K, Z))
            } (t === v || t === d) && _(e);
            return u
        }
        function P() {
            return null !== n.threshold ? $ >= n.threshold: null
        }
        function H() {
            return Math.round(Math.sqrt(Math.pow(y - E, 2) + Math.pow(b - S, 2)))
        }
        function j() {
            var e;
            e = Math.atan2(b - S, E - y);
            e = Math.round(180 * e / Math.PI);
            0 > e && (e = 360 - Math.abs(e));
            return 45 >= e && 0 <= e ? r: 360 >= e && 315 <= e ? r: 135 <= e && 225 >= e ? i: 45 < e && 135 > e ? o: s
        }
        function F() {
            Q.unbind(U, k);
            Q.unbind(V, _);
            Q.unbind(W, L);
            Q.unbind(X, O)
        }
        var y, b, E, S;
        var I = m || !n.fallbackToMouseEvents,
        U = I ? "touchstart": "mousedown",
        W = I ? "touchmove": "mousemove",
        X = I ? "touchend": "mouseup",
        V = "touchcancel",
        $ = 0,
        J = null,
        K = 0,
        Q = e(t),
        Y = "start",
        Z = 0,
        et = b = y = S = E = 0,
        tt = 0;
        try {
            Q.bind(U, k),
            Q.bind(V, _)
        } catch(nt) {
            e.error("events not supported " + U + "," + V + " on jQuery.swipe")
        }
        this.enable = function() {
            Q.bind(U, k);
            Q.bind(V, _);
            return Q
        };
        this.disable = function() {
            F();
            return Q
        };
        this.destroy = function() {
            F();
            Q.data(g, null);
            return Q
        }
    }
    var r = "left",
    i = "right",
    s = "up",
    o = "down",
    u = "none",
    a = "auto",
    f = "horizontal",
    l = "vertical",
    c = "all",
    h = "start",
    p = "move",
    d = "end",
    v = "cancel",
    m = "ontouchstart" in window,
    g = "TouchSwipe";
    e.fn.swipe = function(n) {
        var r = e(this),
        i = r.data(g);
        if (i && "string" === typeof n) {
            if (i[n]) return i[n].apply(this, Array.prototype.slice.call(arguments, 1));
            e.error("Method " + n + " does not exist on jQuery.swipe")
        } else if (!i && ("object" === typeof n || !n)) return t.apply(this, arguments);
        return r
    };
    e.fn.swipe.defaults = {
        fingers: 1,
        threshold: 75,
        maxTimeThreshold: null,
        swipe: null,
        swipeLeft: null,
        swipeRight: null,
        swipeUp: null,
        swipeDown: null,
        swipeStatus: null,
        click: null,
        triggerOnTouchEnd: !0,
        allowPageScroll: "auto",
        fallbackToMouseEvents: !0
    };
    e.fn.swipe.phases = {
        PHASE_START: h,
        PHASE_MOVE: p,
        PHASE_END: d,
        PHASE_CANCEL: v
    };
    e.fn.swipe.directions = {
        LEFT: r,
        RIGHT: i,
        UP: s,
        DOWN: o
    };
    e.fn.swipe.pageScroll = {
        NONE: u,
        HORIZONTAL: f,
        VERTICAL: l,
        AUTO: a
    };
    e.fn.swipe.fingers = {
        ONE: 1,
        TWO: 2,
        THREE: 3,
        ALL: c
    }
})(jQuery); (function(e, t, n, r) {
    "use strict";
    var i = "prettyCheckable",
    s = "plugin_" + i,
    o = {
        label: "",
        labelPosition: "right",
        customClass: "",
        color: "blue"
    };
    var u = function(n) {
        if (t.ko) {
            e(n).on("change",
            function(t) {
                t.preventDefault();
                if (t.originalEvent === r) {
                    var n = e(this).closest(".clearfix"),
                    i = e(n).find("a"),
                    s = i.hasClass("checked");
                    if (s === true) {
                        i.addClass("checked")
                    } else {
                        i.removeClass("checked")
                    }
                }
            })
        }
        n.find("label").hoverIntent({
            over: function() {
                if (e(this).siblings("a").hasClass("disabled")) return;
                e(this).parent().addClass("hover")
            },
            out: function() {
                if (e(this).siblings("a").hasClass("disabled")) return;
                e(this).parent().removeClass("hover")
            },
            timeout: 10
        });
        n.find("a, label").on("touchstart click",
        function(n) {
            n.preventDefault();
            var r = e(this).closest(".clearfix"),
            i = r.find("input"),
            s = r.find("a");
            if (s.hasClass("disabled") === true) {
                return
            }
            if (i.prop("type") === "radio") {
                e('input[name="' + i.attr("name") + '"]').each(function(t, n) {
                    e(n).prop("checked", false).parent().find("a").removeClass("checked")
                })
            }
            if (t.ko) {
                ko.utils.triggerEvent(i[0], "click")
            } else {
                if (i.prop("checked")) {
                    i.prop("checked", false).change()
                } else {
                    i.prop("checked", true).change()
                }
            }
            s.toggleClass("checked");
            s.closest(".fakeInput").toggleClass("checked")
        });
        n.find("a").on("keyup",
        function(t) {
            if (t.keyCode === 32) {
                e(this).click()
            }
        })
    };
    var a = function(t) {
        this.element = t;
        this.options = e.extend({},
        o)
    };
    a.prototype = {
        init: function(t) {
            e.extend(this.options, t);
            var n = e(this.element);
            n.parent().addClass("has-pretty-child");
            n.css("display", "none");
            var i = n.data("type") !== r ? n.data("type") : n.attr("type");
            var s = n.data("label") !== r ? n.data("label") : this.options.label;
            var o = n.data("labelposition") !== r ? "label" + n.data("labelposition") : "label" + this.options.labelPosition;
            var a = n.data("customclass") !== r ? n.data("customclass") : this.options.customClass;
            var f = n.data("color") !== r ? n.data("color") : this.options.color;
            var l = n.prop("disabled") === true ? "disabled": "";
            var c = ["pretty" + i, o, a, f, "fakeInput"].join(" ");
            n.wrap('<div class="clearfix ' + c + '"></div>').parent().html();
            var h = [];
            var p = n.prop("checked") ? "checked": "";
            if (o === "labelright") {
                h.push('<a href="#" class="' + p + " " + l + '"></a>');
                h.push('<label for="' + n.attr("id") + '">' + s + "</label>")
            } else {
                h.push('<label for="' + n.attr("id") + '">' + s + "</label>");
                h.push('<a href="#" class="' + p + " " + l + '"></a>')
            }
            n.parent().append(h.join("\n"));
            u(n.parent())
        },
        check: function() {
            e(this.element).prop("checked", true).attr("checked", true).parent().find("a").addClass("checked")
        },
        uncheck: function() {
            e(this.element).prop("checked", false).attr("checked", false).parent().find("a").removeClass("checked")
        },
        enable: function() {
            e(this.element).removeAttr("disabled").parent().find("a").removeClass("disabled")
        },
        disable: function() {
            e(this.element).attr("disabled", "disabled").parent().find("a").addClass("disabled")
        },
        destroy: function() {
            var t = e(this.element),
            n = t.clone();
            n.removeAttr("style").insertBefore(t.parent());
            t.parent().remove()
        }
    };
    e.fn[i] = function(t) {
        var n, r;
        if (! (this.data(s) instanceof a)) {
            this.data(s, new a(this))
        }
        r = this.data(s);
        r.element = this;
        if (typeof t === "undefined" || typeof t === "object") {
            if (typeof r.init === "function") {
                r.init(t)
            }
        } else if (typeof t === "string" && typeof r[t] === "function") {
            n = Array.prototype.slice.call(arguments, 1);
            return r[t].apply(r, n)
        } else {
            e.error("Method " + t + " does not exist on jQuery." + i)
        }
    }
})(jQuery, window, document); (function() {
    function e(e) {
        this.path = e;
        var t = this.path.split("."),
        n = t.slice(0, t.length - 1).join("."),
        r = t[t.length - 1];
        this.at_2x_path = n + "@2x." + r
    }
    function t(t) {
        this.el = t,
        this.path = new e(this.el.getAttribute("src"));
        var n = this;
        this.path.check_2x_variant(function(e) {
            e && n.swap()
        })
    }
    var n = typeof exports == "undefined" ? window: exports;
    n.RetinaImagePath = e,
    e.confirmed_paths = [],
    e.prototype.is_external = function() {
        return !! this.path.match(/^https?\:/i) && !this.path.match("//" + document.domain)
    },
    e.prototype.check_2x_variant = function(t) {
        var n, r = this;
        if (this.is_external()) return t(!1);
        if (this.at_2x_path in e.confirmed_paths) return t(!0);
        n = new XMLHttpRequest,
        n.open("HEAD", this.at_2x_path),
        n.onreadystatechange = function() {
            return n.readyState != 4 ? t(!1) : n.status >= 200 && n.status <= 399 ? (e.confirmed_paths.push(r.at_2x_path), t(!0)) : t(!1)
        },
        n.send()
    },
    n.RetinaImage = t,
    t.prototype.swap = function(e) {
        function t() {
            n.el.complete ? (n.el.setAttribute("width", n.el.offsetWidth), n.el.setAttribute("height", n.el.offsetHeight), n.el.setAttribute("src", e)) : setTimeout(t, 5)
        }
        typeof e == "undefined" && (e = this.path.at_2x_path);
        var n = this;
        t()
    },
    n.devicePixelRatio > 1 && (window.onload = function() {
        var e = document.getElementsByTagName("img"),
        n = [],
        r,
        i;
        for (r = 0; r < e.length; r++) i = e[r],
        n.push(new t(i))
    })
})();
css_browser_selector(navigator.userAgent); (function(e) {
    e.fn.extend({
        simulate: function(t, n) {
            return this.each(function() {
                var r = e.extend({},
                e.simulate.defaults, n || {});
                new e.simulate(this, t, r)
            })
        }
    });
    e.simulate = function(e, t, n) {
        this.target = e;
        this.options = n;
        if (/^drag$/.test(t)) {
            this[t].apply(this, [this.target, n])
        } else {
            this.simulateEvent(e, t, n)
        }
    };
    e.extend(e.simulate.prototype, {
        simulateEvent: function(e, t, n) {
            var r = this.createEvent(t, n);
            this.dispatchEvent(e, t, r, n);
            return r
        },
        createEvent: function(e, t) {
            if (/^mouse(over|out|down|up|move)|(dbl)?click$/.test(e)) {
                return this.mouseEvent(e, t)
            } else if (/^key(up|down|press)$/.test(e)) {
                return this.keyboardEvent(e, t)
            }
        },
        mouseEvent: function(t, n) {
            var r;
            var i = e.extend({
                bubbles: true,
                cancelable: t != "mousemove",
                view: window,
                detail: 0,
                screenX: 0,
                screenY: 0,
                clientX: 0,
                clientY: 0,
                ctrlKey: false,
                altKey: false,
                shiftKey: false,
                metaKey: false,
                button: 0,
                relatedTarget: undefined
            },
            n);
            var s = e(i.relatedTarget)[0];
            if (e.isFunction(document.createEvent)) {
                r = document.createEvent("MouseEvents");
                r.initMouseEvent(t, i.bubbles, i.cancelable, i.view, i.detail, i.screenX, i.screenY, i.clientX, i.clientY, i.ctrlKey, i.altKey, i.shiftKey, i.metaKey, i.button, i.relatedTarget || document.body.parentNode)
            } else if (document.createEventObject) {
                r = document.createEventObject();
                e.extend(r, i);
                r.button = {
                    0 : 1,
                    1 : 4,
                    2 : 2
                } [r.button] || r.button
            }
            return r
        },
        keyboardEvent: function(t, n) {
            var r;
            var i = e.extend({
                bubbles: true,
                cancelable: true,
                view: window,
                ctrlKey: false,
                altKey: false,
                shiftKey: false,
                metaKey: false,
                keyCode: 0,
                charCode: 0
            },
            n);
            if (e.isFunction(document.createEvent)) {
                try {
                    r = document.createEvent("KeyEvents");
                    r.initKeyEvent(t, i.bubbles, i.cancelable, i.view, i.ctrlKey, i.altKey, i.shiftKey, i.metaKey, i.keyCode, i.charCode)
                } catch(s) {
                    r = document.createEvent("Events");
                    r.initEvent(t, i.bubbles, i.cancelable);
                    e.extend(r, {
                        view: i.view,
                        ctrlKey: i.ctrlKey,
                        altKey: i.altKey,
                        shiftKey: i.shiftKey,
                        metaKey: i.metaKey,
                        keyCode: i.keyCode,
                        charCode: i.charCode
                    })
                }
            } else if (document.createEventObject) {
                r = document.createEventObject();
                e.extend(r, i)
            }
            if (e.browser !== undefined && (e.browser.msie || e.browser.opera)) {
                r.keyCode = i.charCode > 0 ? i.charCode: i.keyCode;
                r.charCode = undefined
            }
            return r
        },
        dispatchEvent: function(e, t, n) {
            if (e.dispatchEvent) {
                e.dispatchEvent(n)
            } else if (e.fireEvent) {
                e.fireEvent("on" + t, n)
            }
            return n
        },
        drag: function(e) {
            var t = this,
            n = this.findCenter(this.target),
            r = this.options,
            i = Math.floor(n.x),
            s = Math.floor(n.y),
            o = r.dx || 0,
            u = r.dy || 0,
            a = this.target;
            var f = {
                clientX: i,
                clientY: s
            };
            this.simulateEvent(a, "mousedown", f);
            f = {
                clientX: i + 1,
                clientY: s + 1
            };
            this.simulateEvent(document, "mousemove", f);
            f = {
                clientX: i + o,
                clientY: s + u
            };
            this.simulateEvent(document, "mousemove", f);
            this.simulateEvent(document, "mousemove", f);
            this.simulateEvent(a, "mouseup", f)
        },
        findCenter: function(t) {
            var t = e(this.target),
            n = t.offset();
            return {
                x: n.left + t.outerWidth() / 2,
                y: n.top + t.outerHeight() / 2
            }
        }
    });
    e.extend(e.simulate, {
        defaults: {
            speed: "sync"
        },
        VK_TAB: 9,
        VK_ENTER: 13,
        VK_ESC: 27,
        VK_PGUP: 33,
        VK_PGDN: 34,
        VK_END: 35,
        VK_HOME: 36,
        VK_LEFT: 37,
        VK_UP: 38,
        VK_RIGHT: 39,
        VK_DOWN: 40
    })
})(jQuery); (function(e) {
    var t, n, r, i, s, o, u, a = "Close",
    f = "BeforeClose",
    l = "AfterClose",
    c = "BeforeAppend",
    h = "MarkupParse",
    p = "Open",
    d = "Change",
    v = "mfp",
    m = "." + v,
    g = "mfp-ready",
    y = "mfp-removing",
    b = "mfp-prevent-close",
    w = function() {},
    E = !!window.jQuery,
    S = e(window),
    x = function(e, n) {
        t.ev.on(v + e + m, n)
    },
    T = function(t, n, r, i) {
        var s = document.createElement("div");
        return s.className = "mfp-" + t,
        r && (s.innerHTML = r),
        i ? n && n.appendChild(s) : (s = e(s), n && s.appendTo(n)),
        s
    },
    N = function(n, r) {
        t.ev.triggerHandler(v + n, r),
        t.st.callbacks && (n = n.charAt(0).toLowerCase() + n.slice(1), t.st.callbacks[n] && t.st.callbacks[n].apply(t, e.isArray(r) ? r: [r]))
    },
    C = function() { (t.st.focus ? t.content.find(t.st.focus).eq(0) : t.wrap).focus()
    },
    k = function(n) {
        return n === u && t.currTemplate.closeBtn || (t.currTemplate.closeBtn = e(t.st.closeMarkup.replace("%title%", t.st.tClose)), u = n),
        t.currTemplate.closeBtn
    },
    L = function() {
        e.magnificPopup.instance || (t = new w, t.init(), e.magnificPopup.instance = t)
    },
    A = function() {
        var e = document.createElement("p").style,
        t = ["ms", "O", "Moz", "Webkit"];
        if (void 0 !== e.transition) return ! 0;
        for (; t.length;) if (t.pop() + "Transition" in e) return ! 0;
        return ! 1
    };
    w.prototype = {
        constructor: w,
        init: function() {
            var n = navigator.appVersion;
            t.isIE7 = -1 !== n.indexOf("MSIE 7."),
            t.isIE8 = -1 !== n.indexOf("MSIE 8."),
            t.isLowIE = t.isIE7 || t.isIE8,
            t.isAndroid = /android/gi.test(n),
            t.isIOS = /iphone|ipad|ipod/gi.test(n),
            t.supportsTransition = A(),
            t.probablyMobile = t.isAndroid || t.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),
            r = e(document.body),
            i = e(document),
            t.popupsCache = {}
        },
        open: function(n) {
            var r;
            if (n.isObj === !1) {
                t.items = n.items.toArray(),
                t.index = 0;
                var s, u = n.items;
                for (r = 0; u.length > r; r++) if (s = u[r], s.parsed && (s = s.el[0]), s === n.el[0]) {
                    t.index = r;
                    break
                }
            } else t.items = e.isArray(n.items) ? n.items: [n.items],
            t.index = n.index || 0;
            if (t.isOpen) return t.updateItemHTML(),
            void 0;
            t.types = [],
            o = "",
            t.ev = n.mainEl && n.mainEl.length ? n.mainEl.eq(0) : i,
            n.key ? (t.popupsCache[n.key] || (t.popupsCache[n.key] = {}), t.currTemplate = t.popupsCache[n.key]) : t.currTemplate = {},
            t.st = e.extend(!0, {},
            e.magnificPopup.defaults, n),
            t.fixedContentPos = "auto" === t.st.fixedContentPos ? !t.probablyMobile: t.st.fixedContentPos,
            t.st.modal && (t.st.closeOnContentClick = !1, t.st.closeOnBgClick = !1, t.st.showCloseBtn = !1, t.st.enableEscapeKey = !1),
            t.bgOverlay || (t.bgOverlay = T("bg").on("click" + m,
            function() {
                t.close()
            }), t.wrap = T("wrap").attr("tabindex", -1).on("click" + m,
            function(e) {
                t._checkIfClose(e.target) && t.close()
            }), t.container = T("container", t.wrap)),
            t.contentContainer = T("content"),
            t.st.preloader && (t.preloader = T("preloader", t.container, t.st.tLoading));
            var a = e.magnificPopup.modules;
            for (r = 0; a.length > r; r++) {
                var f = a[r];
                f = f.charAt(0).toUpperCase() + f.slice(1),
                t["init" + f].call(t)
            }
            N("BeforeOpen"),
            t.st.showCloseBtn && (t.st.closeBtnInside ? (x(h,
            function(e, t, n, r) {
                n.close_replaceWith = k(r.type)
            }), o += " mfp-close-btn-in") : t.wrap.append(k())),
            t.st.alignTop && (o += " mfp-align-top"),
            t.fixedContentPos ? t.wrap.css({
                overflow: t.st.overflowY,
                overflowX: "hidden",
                overflowY: t.st.overflowY
            }) : t.wrap.css({
                top: S.scrollTop(),
                position: "absolute"
            }),
            (t.st.fixedBgPos === !1 || "auto" === t.st.fixedBgPos && !t.fixedContentPos) && t.bgOverlay.css({
                height: i.height(),
                position: "absolute"
            }),
            t.st.enableEscapeKey && i.on("keyup" + m,
            function(e) {
                27 === e.keyCode && t.close()
            }),
            S.on("resize" + m,
            function() {
                t.updateSize()
            }),
            t.st.closeOnContentClick || (o += " mfp-auto-cursor"),
            o && t.wrap.addClass(o);
            var l = t.wH = S.height(),
            c = {};
            if (t.fixedContentPos && t._hasScrollBar(l)) {
                var d = t._getScrollbarSize();
                d && (c.marginRight = d)
            }
            t.fixedContentPos && (t.isIE7 ? e("body, html").css("overflow", "hidden") : c.overflow = "hidden");
            var v = t.st.mainClass;
            return t.isIE7 && (v += " mfp-ie7"),
            v && t._addClassToMFP(v),
            t.updateItemHTML(),
            N("BuildControls"),
            e("html").css(c),
            t.bgOverlay.add(t.wrap).prependTo(document.body),
            t._lastFocusedEl = document.activeElement,
            setTimeout(function() {
                t.content ? (t._addClassToMFP(g), C()) : t.bgOverlay.addClass(g),
                i.on("focusin" + m,
                function(n) {
                    return n.target === t.wrap[0] || e.contains(t.wrap[0], n.target) ? void 0 : (C(), !1)
                })
            },
            16),
            t.isOpen = !0,
            t.updateSize(l),
            N(p),
            n
        },
        close: function() {
            t.isOpen && (N(f), t.isOpen = !1, t.st.removalDelay && !t.isLowIE && t.supportsTransition ? (t._addClassToMFP(y), setTimeout(function() {
                t._close()
            },
            t.st.removalDelay)) : t._close())
        },
        _close: function() {
            N(a);
            var n = y + " " + g + " ";
            if (t.bgOverlay.detach(), t.wrap.detach(), t.container.empty(), t.st.mainClass && (n += t.st.mainClass + " "), t._removeClassFromMFP(n), t.fixedContentPos) {
                var r = {
                    marginRight: ""
                };
                t.isIE7 ? e("body, html").css("overflow", "") : r.overflow = "",
                e("html").css(r)
            }
            i.off("keyup" + m + " focusin" + m),
            t.ev.off(m),
            t.wrap.attr("class", "mfp-wrap").removeAttr("style"),
            t.bgOverlay.attr("class", "mfp-bg"),
            t.container.attr("class", "mfp-container"),
            !t.st.showCloseBtn || t.st.closeBtnInside && t.currTemplate[t.currItem.type] !== !0 || t.currTemplate.closeBtn && t.currTemplate.closeBtn.detach(),
            t._lastFocusedEl && e(t._lastFocusedEl).focus(),
            t.currItem = null,
            t.content = null,
            t.currTemplate = null,
            t.prevHeight = 0,
            N(l)
        },
        updateSize: function(e) {
            if (t.isIOS) {
                var n = document.documentElement.clientWidth / window.innerWidth,
                r = window.innerHeight * n;
                t.wrap.css("height", r),
                t.wH = r
            } else t.wH = e || S.height();
            t.fixedContentPos || t.wrap.css("height", t.wH),
            N("Resize")
        },
        updateItemHTML: function() {
            var n = t.items[t.index];
            t.contentContainer.detach(),
            t.content && t.content.detach(),
            n.parsed || (n = t.parseEl(t.index));
            var r = n.type;
            if (N("BeforeChange", [t.currItem ? t.currItem.type: "", r]), t.currItem = n, !t.currTemplate[r]) {
                var i = t.st[r] ? t.st[r].markup: !1;
                N("FirstMarkupParse", i),
                t.currTemplate[r] = i ? e(i) : !0
            }
            s && s !== n.type && t.container.removeClass("mfp-" + s + "-holder");
            var o = t["get" + r.charAt(0).toUpperCase() + r.slice(1)](n, t.currTemplate[r]);
            t.appendContent(o, r),
            n.preloaded = !0,
            N(d, n),
            s = n.type,
            t.container.prepend(t.contentContainer),
            N("AfterChange")
        },
        appendContent: function(e, n) {
            t.content = e,
            e ? t.st.showCloseBtn && t.st.closeBtnInside && t.currTemplate[n] === !0 ? t.content.find(".mfp-close").length || t.content.append(k()) : t.content = e: t.content = "",
            N(c),
            t.container.addClass("mfp-" + n + "-holder"),
            t.contentContainer.append(t.content)
        },
        parseEl: function(n) {
            var r = t.items[n],
            i = r.type;
            if (r = r.tagName ? {
                el: e(r)
            }: {
                data: r,
                src: r.src
            },
            r.el) {
                for (var s = t.types,
                o = 0; s.length > o; o++) if (r.el.hasClass("mfp-" + s[o])) {
                    i = s[o];
                    break
                }
                r.src = r.el.attr("data-mfp-src"),
                r.src || (r.src = r.el.attr("href"))
            }
            return r.type = i || t.st.type || "inline",
            r.index = n,
            r.parsed = !0,
            t.items[n] = r,
            N("ElementParse", r),
            t.items[n]
        },
        addGroup: function(e, n) {
            var r = function(r) {
                r.mfpEl = this,
                t._openClick(r, e, n)
            };
            n || (n = {});
            var i = "click.magnificPopup";
            n.mainEl = e,
            n.items ? (n.isObj = !0, e.off(i).on(i, r)) : (n.isObj = !1, n.delegate ? e.off(i).on(i, n.delegate, r) : (n.items = e, e.off(i).on(i, r)))
        },
        _openClick: function(n, r, i) {
            var s = void 0 !== i.midClick ? i.midClick: e.magnificPopup.defaults.midClick;
            if (s || 2 !== n.which && !n.ctrlKey && !n.metaKey) {
                var o = void 0 !== i.disableOn ? i.disableOn: e.magnificPopup.defaults.disableOn;
                if (o) if (e.isFunction(o)) {
                    if (!o.call(t)) return ! 0
                } else if (o > S.width()) return ! 0;
                n.type && (n.preventDefault(), t.isOpen && n.stopPropagation()),
                i.el = e(n.mfpEl),
                i.delegate && (i.items = r.find(i.delegate)),
                t.open(i)
            }
        },
        updateStatus: function(e, r) {
            if (t.preloader) {
                n !== e && t.container.removeClass("mfp-s-" + n),
                r || "loading" !== e || (r = t.st.tLoading);
                var i = {
                    status: e,
                    text: r
                };
                N("UpdateStatus", i),
                e = i.status,
                r = i.text,
                t.preloader.html(r),
                t.preloader.find("a").on("click",
                function(e) {
                    e.stopImmediatePropagation()
                }),
                t.container.addClass("mfp-s-" + e),
                n = e
            }
        },
        _checkIfClose: function(n) {
            if (!e(n).hasClass(b)) {
                var r = t.st.closeOnContentClick,
                i = t.st.closeOnBgClick;
                if (r && i) return ! 0;
                if (!t.content || e(n).hasClass("mfp-close") || t.preloader && n === t.preloader[0]) return ! 0;
                if (n === t.content[0] || e.contains(t.content[0], n)) {
                    if (r) return ! 0
                } else if (i && e.contains(document, n)) return ! 0;
                return ! 1
            }
        },
        _addClassToMFP: function(e) {
            t.bgOverlay.addClass(e),
            t.wrap.addClass(e)
        },
        _removeClassFromMFP: function(e) {
            this.bgOverlay.removeClass(e),
            t.wrap.removeClass(e)
        },
        _hasScrollBar: function(e) {
            return (t.isIE7 ? i.height() : document.body.scrollHeight) > (e || S.height())
        },
        _parseMarkup: function(t, n, r) {
            var i;
            r.data && (n = e.extend(r.data, n)),
            N(h, [t, n, r]),
            e.each(n,
            function(e, n) {
                if (void 0 === n || n === !1) return ! 0;
                if (i = e.split("_"), i.length > 1) {
                    var r = t.find(m + "-" + i[0]);
                    if (r.length > 0) {
                        var s = i[1];
                        "replaceWith" === s ? r[0] !== n[0] && r.replaceWith(n) : "img" === s ? r.is("img") ? r.attr("src", n) : r.replaceWith('<img src="' + n + '" class="' + r.attr("class") + '" />') : r.attr(i[1], n)
                    }
                } else t.find(m + "-" + e).html(n)
            })
        },
        _getScrollbarSize: function() {
            if (void 0 === t.scrollbarSize) {
                var e = document.createElement("div");
                e.id = "mfp-sbm",
                e.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",
                document.body.appendChild(e),
                t.scrollbarSize = e.offsetWidth - e.clientWidth,
                document.body.removeChild(e)
            }
            return t.scrollbarSize
        }
    },
    e.magnificPopup = {
        instance: null,
        proto: w.prototype,
        modules: [],
        open: function(t, n) {
            return L(),
            t = t ? e.extend(!0, {},
            t) : {},
            t.isObj = !0,
            t.index = n || 0,
            this.instance.open(t)
        },
        close: function() {
            return e.magnificPopup.instance && e.magnificPopup.instance.close()
        },
        registerModule: function(t, n) {
            n.options && (e.magnificPopup.defaults[t] = n.options),
            e.extend(this.proto, n.proto),
            this.modules.push(t)
        },
        defaults: {
            disableOn: 0,
            key: null,
            midClick: !1,
            mainClass: "",
            preloader: !0,
            focus: "",
            closeOnContentClick: !1,
            closeOnBgClick: !0,
            closeBtnInside: !0,
            showCloseBtn: !0,
            enableEscapeKey: !0,
            modal: !1,
            alignTop: !1,
            removalDelay: 0,
            fixedContentPos: "auto",
            fixedBgPos: "auto",
            overflowY: "auto",
            closeMarkup: '<button title="%title%" type="button" class="mfp-close">&times;</button>',
            tClose: "Close (Esc)",
            tLoading: "Loading..."
        }
    },
    e.fn.magnificPopup = function(n) {
        L();
        var r = e(this);
        if ("string" == typeof n) if ("open" === n) {
            var i, s = E ? r.data("magnificPopup") : r[0].magnificPopup,
            o = parseInt(arguments[1], 10) || 0;
            s.items ? i = s.items[o] : (i = r, s.delegate && (i = i.find(s.delegate)), i = i.eq(o)),
            t._openClick({
                mfpEl: i
            },
            r, s)
        } else t.isOpen && t[n].apply(t, Array.prototype.slice.call(arguments, 1));
        else n = e.extend(!0, {},
        n),
        E ? r.data("magnificPopup", n) : r[0].magnificPopup = n,
        t.addGroup(r, n);
        return r
    };
    var O, M, _, D = "inline",
    P = function() {
        _ && (M.after(_.addClass(O)).detach(), _ = null)
    };
    e.magnificPopup.registerModule(D, {
        options: {
            hiddenClass: "hide",
            markup: "",
            tNotFound: "Content not found"
        },
        proto: {
            initInline: function() {
                t.types.push(D),
                x(a + "." + D,
                function() {
                    P()
                })
            },
            getInline: function(n, r) {
                if (P(), n.src) {
                    var i = t.st.inline,
                    s = e(n.src);
                    if (s.length) {
                        var o = s[0].parentNode;
                        o && o.tagName && (M || (O = i.hiddenClass, M = T(O), O = "mfp-" + O), _ = s.after(M).detach().removeClass(O)),
                        t.updateStatus("ready")
                    } else t.updateStatus("error", i.tNotFound),
                    s = e("<div>");
                    return n.inlineElement = s,
                    s
                }
                return t.updateStatus("ready"),
                t._parseMarkup(r, {},
                n),
                r
            }
        }
    });
    var H, B = "ajax",
    j = function() {
        H && r.removeClass(H)
    },
    F = function() {
        j(),
        t.req && t.req.abort()
    };
    e.magnificPopup.registerModule(B, {
        options: {
            settings: null,
            cursor: "mfp-ajax-cur",
            tError: '<a href="%url%">The content</a> could not be loaded.'
        },
        proto: {
            initAjax: function() {
                t.types.push(B),
                H = t.st.ajax.cursor,
                x(a + "." + B, F),
                x("BeforeChange." + B, F)
            },
            getAjax: function(n) {
                H && r.addClass(H),
                t.updateStatus("loading");
                var i = e.extend({
                    url: n.src,
                    success: function(r, i, s) {
                        var o = {
                            data: r,
                            xhr: s
                        };
                        N("ParseAjax", o),
                        t.appendContent(e(o.data), B),
                        n.finished = !0,
                        j(),
                        C(),
                        setTimeout(function() {
                            t.wrap.addClass(g)
                        },
                        16),
                        t.updateStatus("ready"),
                        N("AjaxContentAdded")
                    },
                    error: function() {
                        j(),
                        n.finished = n.loadError = !0,
                        t.updateStatus("error", t.st.ajax.tError.replace("%url%", n.src))
                    }
                },
                t.st.ajax.settings);
                return t.req = e.ajax(i),
                ""
            }
        }
    });
    var I, q = function(n) {
        if (n.data && void 0 !== n.data.title) return n.data.title;
        var r = t.st.image.titleSrc;
        if (r) {
            if (e.isFunction(r)) return r.call(t, n);
            if (n.el) return n.el.attr(r) || ""
        }
        return ""
    };
    e.magnificPopup.registerModule("image", {
        options: {
            markup: '<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',
            cursor: "mfp-zoom-out-cur",
            titleSrc: "title",
            verticalFit: !0,
            tError: '<a href="%url%">The image</a> could not be loaded.'
        },
        proto: {
            initImage: function() {
                var e = t.st.image,
                n = ".image";
                t.types.push("image"),
                x(p + n,
                function() {
                    "image" === t.currItem.type && e.cursor && r.addClass(e.cursor)
                }),
                x(a + n,
                function() {
                    e.cursor && r.removeClass(e.cursor),
                    S.off("resize" + m)
                }),
                x("Resize" + n, t.resizeImage),
                t.isLowIE && x("AfterChange", t.resizeImage)
            },
            resizeImage: function() {
                var e = t.currItem;
                if (e && e.img && t.st.image.verticalFit) {
                    var n = 0;
                    t.isLowIE && (n = parseInt(e.img.css("padding-top"), 10) + parseInt(e.img.css("padding-bottom"), 10)),
                    e.img.css("max-height", t.wH - n)
                }
            },
            _onImageHasSize: function(e) {
                e.img && (e.hasSize = !0, I && clearInterval(I), e.isCheckingImgSize = !1, N("ImageHasSize", e), e.imgHidden && (t.content && t.content.removeClass("mfp-loading"), e.imgHidden = !1))
            },
            findImageSize: function(e) {
                var n = 0,
                r = e.img[0],
                i = function(s) {
                    I && clearInterval(I),
                    I = setInterval(function() {
                        return r.naturalWidth > 0 ? (t._onImageHasSize(e), void 0) : (n > 200 && clearInterval(I), n++, 3 === n ? i(10) : 40 === n ? i(50) : 100 === n && i(500), void 0)
                    },
                    s)
                };
                i(1)
            },
            getImage: function(n, r) {
                var i = 0,
                s = function() {
                    n && (n.img[0].complete ? (n.img.off(".mfploader"), n === t.currItem && (t._onImageHasSize(n), t.updateStatus("ready")), n.hasSize = !0, n.loaded = !0, N("ImageLoadComplete")) : (i++, 200 > i ? setTimeout(s, 100) : o()))
                },
                o = function() {
                    n && (n.img.off(".mfploader"), n === t.currItem && (t._onImageHasSize(n), t.updateStatus("error", u.tError.replace("%url%", n.src))), n.hasSize = !0, n.loaded = !0, n.loadError = !0)
                },
                u = t.st.image,
                a = r.find(".mfp-img");
                if (a.length) {
                    var f = document.createElement("img");
                    f.className = "mfp-img",
                    n.img = e(f).on("load.mfploader", s).on("error.mfploader", o),
                    f.src = n.src,
                    a.is("img") && (n.img = n.img.clone()),
                    n.img[0].naturalWidth > 0 && (n.hasSize = !0)
                }
                return t._parseMarkup(r, {
                    title: q(n),
                    img_replaceWith: n.img
                },
                n),
                t.resizeImage(),
                n.hasSize ? (I && clearInterval(I), n.loadError ? (r.addClass("mfp-loading"), t.updateStatus("error", u.tError.replace("%url%", n.src))) : (r.removeClass("mfp-loading"), t.updateStatus("ready")), r) : (t.updateStatus("loading"), n.loading = !0, n.hasSize || (n.imgHidden = !0, r.addClass("mfp-loading"), t.findImageSize(n)), r)
            }
        }
    });
    var R, U = function() {
        return void 0 === R && (R = void 0 !== document.createElement("p").style.MozTransform),
        R
    };
    e.magnificPopup.registerModule("zoom", {
        options: {
            enabled: !1,
            easing: "ease-in-out",
            duration: 300,
            opener: function(e) {
                return e.is("img") ? e: e.find("img")
            }
        },
        proto: {
            initZoom: function() {
                var e, n = t.st.zoom,
                r = ".zoom";
                if (n.enabled && t.supportsTransition) {
                    var i, s, o = n.duration,
                    u = function(e) {
                        var t = e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),
                        r = "all " + n.duration / 1e3 + "s " + n.easing,
                        i = {
                            position: "fixed",
                            zIndex: 9999,
                            left: 0,
                            top: 0,
                            "-webkit-backface-visibility": "hidden"
                        },
                        s = "transition";
                        return i["-webkit-" + s] = i["-moz-" + s] = i["-o-" + s] = i[s] = r,
                        t.css(i),
                        t
                    },
                    l = function() {
                        t.content.css("visibility", "visible")
                    };
                    x("BuildControls" + r,
                    function() {
                        if (t._allowZoom()) {
                            if (clearTimeout(i), t.content.css("visibility", "hidden"), e = t._getItemToZoom(), !e) return l(),
                            void 0;
                            s = u(e),
                            s.css(t._getOffset()),
                            t.wrap.append(s),
                            i = setTimeout(function() {
                                s.css(t._getOffset(!0)),
                                i = setTimeout(function() {
                                    l(),
                                    setTimeout(function() {
                                        s.remove(),
                                        e = s = null,
                                        N("ZoomAnimationEnded")
                                    },
                                    16)
                                },
                                o)
                            },
                            16)
                        }
                    }),
                    x(f + r,
                    function() {
                        if (t._allowZoom()) {
                            if (clearTimeout(i), t.st.removalDelay = o, !e) {
                                if (e = t._getItemToZoom(), !e) return;
                                s = u(e)
                            }
                            s.css(t._getOffset(!0)),
                            t.wrap.append(s),
                            t.content.css("visibility", "hidden"),
                            setTimeout(function() {
                                s.css(t._getOffset())
                            },
                            16)
                        }
                    }),
                    x(a + r,
                    function() {
                        t._allowZoom() && (l(), s && s.remove(), e = null)
                    })
                }
            },
            _allowZoom: function() {
                return "image" === t.currItem.type
            },
            _getItemToZoom: function() {
                return t.currItem.hasSize ? t.currItem.img: !1
            },
            _getOffset: function(n) {
                var r;
                r = n ? t.currItem.img: t.st.zoom.opener(t.currItem.el || t.currItem);
                var i = r.offset(),
                s = parseInt(r.css("padding-top"), 10),
                o = parseInt(r.css("padding-bottom"), 10);
                i.top -= e(window).scrollTop() - s;
                var u = {
                    width: r.width(),
                    height: (E ? r.innerHeight() : r[0].offsetHeight) - o - s
                };
                return U() ? u["-moz-transform"] = u.transform = "translate(" + i.left + "px," + i.top + "px)": (u.left = i.left, u.top = i.top),
                u
            }
        }
    });
    var z = "iframe",
    W = "//about:blank",
    X = function(e) {
        if (t.currTemplate[z]) {
            var n = t.currTemplate[z].find("iframe");
            n.length && (e || (n[0].src = W), t.isIE8 && n.css("display", e ? "block": "none"))
        }
    };
    e.magnificPopup.registerModule(z, {
        options: {
            markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',
            srcAction: "iframe_src",
            patterns: {
                youtube: {
                    index: "youtube.com",
                    id: "v=",
                    src: "//www.youtube.com/embed/%id%?autoplay=1"
                },
                vimeo: {
                    index: "vimeo.com/",
                    id: "/",
                    src: "//player.vimeo.com/video/%id%?autoplay=1"
                },
                gmaps: {
                    index: "//maps.google.",
                    src: "%id%&output=embed"
                }
            }
        },
        proto: {
            initIframe: function() {
                t.types.push(z),
                x("BeforeChange",
                function(e, t, n) {
                    t !== n && (t === z ? X() : n === z && X(!0))
                }),
                x(a + "." + z,
                function() {
                    X()
                })
            },
            getIframe: function(n, r) {
                var i = n.src,
                s = t.st.iframe;
                e.each(s.patterns,
                function() {
                    return i.indexOf(this.index) > -1 ? (this.id && (i = "string" == typeof this.id ? i.substr(i.lastIndexOf(this.id) + this.id.length, i.length) : this.id.call(this, i)), i = this.src.replace("%id%", i), !1) : void 0
                });
                var o = {};
                return s.srcAction && (o[s.srcAction] = i),
                t._parseMarkup(r, o, n),
                t.updateStatus("ready"),
                r
            }
        }
    });
    var V = function(e) {
        var n = t.items.length;
        return e > n - 1 ? e - n: 0 > e ? n + e: e
    },
    $ = function(e, t, n) {
        return e.replace(/%curr%/gi, t + 1).replace(/%total%/gi, n)
    };
    e.magnificPopup.registerModule("gallery", {
        options: {
            enabled: !1,
            arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
            preload: [0, 2],
            navigateByImgClick: !0,
            arrows: !0,
            tPrev: "Previous (Left arrow key)",
            tNext: "Next (Right arrow key)",
            tCounter: "%curr% of %total%"
        },
        proto: {
            initGallery: function() {
                var n = t.st.gallery,
                r = ".mfp-gallery",
                s = Boolean(e.fn.mfpFastClick);
                return t.direction = !0,
                n && n.enabled ? (o += " mfp-gallery", x(p + r,
                function() {
                    n.navigateByImgClick && t.wrap.on("click" + r, ".mfp-img",
                    function() {
                        return t.items.length > 1 ? (t.next(), !1) : void 0
                    }),
                    i.on("keydown" + r,
                    function(e) {
                        37 === e.keyCode ? t.prev() : 39 === e.keyCode && t.next()
                    })
                }), x("UpdateStatus" + r,
                function(e, n) {
                    n.text && (n.text = $(n.text, t.currItem.index, t.items.length))
                }), x(h + r,
                function(e, r, i, s) {
                    var o = t.items.length;
                    i.counter = o > 1 ? $(n.tCounter, s.index, o) : ""
                }), x("BuildControls" + r,
                function() {
                    if (t.items.length > 1 && n.arrows && !t.arrowLeft) {
                        var r = n.arrowMarkup,
                        i = t.arrowLeft = e(r.replace(/%title%/gi, n.tPrev).replace(/%dir%/gi, "left")).addClass(b),
                        o = t.arrowRight = e(r.replace(/%title%/gi, n.tNext).replace(/%dir%/gi, "right")).addClass(b),
                        u = s ? "mfpFastClick": "click";
                        i[u](function() {
                            t.prev()
                        }),
                        o[u](function() {
                            t.next()
                        }),
                        t.isIE7 && (T("b", i[0], !1, !0), T("a", i[0], !1, !0), T("b", o[0], !1, !0), T("a", o[0], !1, !0)),
                        t.container.append(i.add(o))
                    }
                }), x(d + r,
                function() {
                    t._preloadTimeout && clearTimeout(t._preloadTimeout),
                    t._preloadTimeout = setTimeout(function() {
                        t.preloadNearbyImages(),
                        t._preloadTimeout = null
                    },
                    16)
                }), x(a + r,
                function() {
                    i.off(r),
                    t.wrap.off("click" + r),
                    t.arrowLeft && s && t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(),
                    t.arrowRight = t.arrowLeft = null
                }), void 0) : !1
            },
            next: function() {
                t.direction = !0,
                t.index = V(t.index + 1),
                t.updateItemHTML()
            },
            prev: function() {
                t.direction = !1,
                t.index = V(t.index - 1),
                t.updateItemHTML()
            },
            goTo: function(e) {
                t.direction = e >= t.index,
                t.index = e,
                t.updateItemHTML()
            },
            preloadNearbyImages: function() {
                var e, n = t.st.gallery.preload,
                r = Math.min(n[0], t.items.length),
                i = Math.min(n[1], t.items.length);
                for (e = 1; (t.direction ? i: r) >= e; e++) t._preloadItem(t.index + e);
                for (e = 1; (t.direction ? r: i) >= e; e++) t._preloadItem(t.index - e)
            },
            _preloadItem: function(n) {
                if (n = V(n), !t.items[n].preloaded) {
                    var r = t.items[n];
                    r.parsed || (r = t.parseEl(n)),
                    N("LazyLoad", r),
                    "image" === r.type && (r.img = e('<img class="mfp-img" />').on("load.mfploader",
                    function() {
                        r.hasSize = !0
                    }).on("error.mfploader",
                    function() {
                        r.hasSize = !0,
                        r.loadError = !0,
                        N("LazyLoadError", r)
                    }).attr("src", r.src)),
                    r.preloaded = !0
                }
            }
        }
    });
    var J = "retina";
    e.magnificPopup.registerModule(J, {
        options: {
            replaceSrc: function(e) {
                return e.src.replace(/\.\w+$/,
                function(e) {
                    return "@2x" + e
                })
            },
            ratio: 1
        },
        proto: {
            initRetina: function() {
                if (window.devicePixelRatio > 1) {
                    var e = t.st.retina,
                    n = e.ratio;
                    n = isNaN(n) ? n() : n,
                    n > 1 && (x("ImageHasSize." + J,
                    function(e, t) {
                        t.img.css({
                            "max-width": t.img[0].naturalWidth / n,
                            width: "100%"
                        })
                    }), x("ElementParse." + J,
                    function(t, r) {
                        r.src = e.replaceSrc(r, n)
                    }))
                }
            }
        }
    }),
    function() {
        var t = 1e3,
        n = "ontouchstart" in window,
        r = function() {
            S.off("touchmove" + s + " touchend" + s)
        },
        i = "mfpFastClick",
        s = "." + i;
        e.fn.mfpFastClick = function(i) {
            return e(this).each(function() {
                var o, u = e(this);
                if (n) {
                    var a, f, l, c, h, p;
                    u.on("touchstart" + s,
                    function(e) {
                        c = !1,
                        p = 1,
                        h = e.originalEvent ? e.originalEvent.touches[0] : e.touches[0],
                        f = h.clientX,
                        l = h.clientY,
                        S.on("touchmove" + s,
                        function(e) {
                            h = e.originalEvent ? e.originalEvent.touches: e.touches,
                            p = h.length,
                            h = h[0],
                            (Math.abs(h.clientX - f) > 10 || Math.abs(h.clientY - l) > 10) && (c = !0, r())
                        }).on("touchend" + s,
                        function(e) {
                            r(),
                            c || p > 1 || (o = !0, e.preventDefault(), clearTimeout(a), a = setTimeout(function() {
                                o = !1
                            },
                            t), i())
                        })
                    })
                }
                u.on("click" + s,
                function() {
                    o || i()
                })
            })
        },
        e.fn.destroyMfpFastClick = function() {
            e(this).off("touchstart" + s + " click" + s),
            n && S.off("touchmove" + s + " touchend" + s)
        }
    } ()
})(window.jQuery || window.Zepto); (function(e) {
    if (typeof define === "function" && define.amd) {
        define(["jquery"], e)
    } else {
        e(jQuery)
    }
})(function(e) {
    function n(e) {
        return u.raw ? e: encodeURIComponent(e)
    }
    function r(e) {
        return u.raw ? e: decodeURIComponent(e)
    }
    function i(e) {
        return n(u.json ? JSON.stringify(e) : String(e))
    }
    function s(e) {
        if (e.indexOf('"') === 0) {
            e = e.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")
        }
        try {
            e = decodeURIComponent(e.replace(t, " "));
            return u.json ? JSON.parse(e) : e
        } catch(n) {}
    }
    function o(t, n) {
        var r = u.raw ? t: s(t);
        return e.isFunction(n) ? n(r) : r
    }
    var t = /\+/g;
    var u = e.cookie = function(t, s, a) {
        if (s !== undefined && !e.isFunction(s)) {
            a = e.extend({},
            u.defaults, a);
            if (typeof a.expires === "number") {
                var f = a.expires,
                l = a.expires = new Date;
                l.setDate(l.getDate() + f)
            }
            return document.cookie = [n(t), "=", i(s), a.expires ? "; expires=" + a.expires.toUTCString() : "", a.path ? "; path=" + a.path: "", a.domain ? "; domain=" + a.domain: "", a.secure ? "; secure": ""].join("")
        }
        var c = t ? undefined: {};
        var h = document.cookie ? document.cookie.split("; ") : [];
        for (var p = 0,
        d = h.length; p < d; p++) {
            var v = h[p].split("=");
            var m = r(v.shift());
            var g = v.join("=");
            if (t && t === m) {
                c = o(g, s);
                break
            }
            if (!t && (g = o(g)) !== undefined) {
                c[m] = g
            }
        }
        return c
    };
    u.defaults = {};
    e.removeCookie = function(t, n) {
        if (e.cookie(t) === undefined) {
            return false
        }
        e.cookie(t, "", e.extend({},
        n, {
            expires: -1
        }));
        return ! e.cookie(t)
    }
});
jQuery(function(e) {
    function t() {
        return e.cookie("cart")
    }
    function n(t) {
        e.cookie("cart", JSON.stringify(t))
    }
    function r(t) {
        return e.parseJSON(t)
    }
    function i(e) {
        var i = t();
        if (typeof i == "undefined") {
            i = [];
            i.push(e)
        } else {
            i = r(i);
            for (var s in i) {
                if (i[s].id == e.id) {
                    i[s].qty++;
                    n(i);
                    return
                }
            }
            i.push(e)
        }
        n(i)
    }
    function s() {
        var n = t();
        var i = e("#sub-cart"),
        o = i.find(".cart-items"),
        u = i.find(".cart-header"),
        a = i.find(".cart-total .total");
        o.empty();
        u.find("small").hide();
        if (typeof n == "undefined") {
            u.find("span").text("Your cart is currently empty.");
            a.text("0");
            return
        } else {
            var f = 0,
            l = 0,
            c, h = 2;
            n = r(n);
            for (var p in n) {
                c = n[p].price;
                c = c.replace(/^\D+/g, "");
                c = parseInt(c);
                if (!isNaN(c)) {
                    f += n[p].qty * c
                }
                if (++l > h) continue;
                var d = e('<li> 								<div class="item clearfix" data-product-id="' + n[p].id + '"> 									<button type="button" class="close" aria-hidden="true">×</button> 									<a href="' + n[p].thumbnail + '" data-toggle="lightbox" class="entry-thumbnail"> 										<img src="' + n[p].thumbnail + '" alt="' + n[p].title + '" /> 									</a> 									<h5 class="entry-title"><a href="' + n[p].url + '">' + n[p].title + '</a></h5> 									<span class="entry-price">' + n[p].qty + " x " + n[p].price + "</span> 								</div> 							</li>");
                d.appendTo(o);
                d.find('[data-toggle="lightbox"]').magnificPopup({
                    type: "image"
                })
            }
            if (h >= l) {
                h = l
            } else {
                u.find("small").show()
            }
            if (l == 0) {
                e.removeCookie("cart");
                s();
                return
            }
            u.find("span").text("显示 " + l.toString() + " 件商品中的 " + h.toString() + " 件");
            a.text("$ " + f.toString())
        }
    }
    function o(t) {
        e.ajax({
            url: "cart.php",
            type: "post",
            data: "data=" + encodeURIComponent(JSON.stringify(t)),
            dataType: "json",
            beforeSend: function() {},
            sucess: function(e) {
                s(t)
            }
        })
    }
    e(document).on("click", ".add-to-cart",
    function(t) {
        t.preventDefault();
        var n = e(this),
        r,
        o = {};
        r = n.closest(".add-cart");
        $item = n.closest(r.data("product"));
        o = {
            id: $item.data("product-id"),
            thumbnail: $item.find(r.data("thumbnail")).attr("src"),
            title: e.trim($item.find(r.data("title")).text()),
            url: $item.find(r.data("url")).attr("href"),
            price: e.trim($item.find(r.data("price")).text()),
            qty: 1
        };
        var u = $item.find(r.data("thumbnail")),
        a = e('.header-top [data-target="#sub-cart"]'),
        f = u.clone().offset({
            top: u.offset().top,
            left: u.offset().left
        }).css({
            opacity: "0.5",
            position: "absolute",
            height: "150px",
            width: "150px",
            "z-index": "100000"
        }).appendTo(e("body")).animate({
            top: a.offset().top + 10,
            left: a.offset().left + 10,
            width: 75,
            height: 75
        },
        1e3, "easeInQuad",
        function() {
            e(this).animate({
                width: 0,
                height: 0
            },
            function() {
                e(this).detach()
            });
            var t = e(".cart-notification ul"),
            n = e('<li><strong>"' + o.title + '"</strong> 加入购物车成功！</li>').hide();
            n.appendTo(t).slideDown(400,
            function() {
                setTimeout(function() {
                    n.slideUp(400,
                    function() {
                        e(this).remove()
                    })
                },
                2e3)
            })
        });
        i(o);
        s()
    });
    e(document).on("click", "#sub-cart .close",
    function() {
        var i = e(this),
        o = i.closest(".item"),
        u = o.data("product-id");
        cookie = t();
        cookie = r(cookie);
        for (var a in cookie) {
            if (cookie[a].id == u) {
                cookie.splice(a, 1)
            }
        }
        n(cookie);
        o.parent().fadeOut(400,
        function() {
            s()
        })
    });
    s()
});
var scrnW, scrnH;
jQuery(function(e) {
    function t() {
        scrnW = e(window).width(),
        scrnH = e(window).height()
    }
    e(window).on("resize",
    function() {
        t()
    });
    t();
    if (jQuery().gmap3) {
        e("#store-locator-gmap").gmap3({
            marker: {
                values: [{
                    latLng: [ - 37.817243, 144.955475]
                },
                {
                    latLng: [ - 37.812843, 144.924475]
                },
                {
                    latLng: [ - 37.822843, 144.974475]
                },
                {
                    latLng: [ - 37.802843, 144.964475]
                },
                {
                    latLng: [ - 37.822043, 144.978475]
                }],
                options: {
                    draggable: true
                },
                events: {
                    dragend: function(t) {
                        e(this).gmap3({
                            getaddress: {
                                latLng: t.getPosition(),
                                callback: function(n) {
                                    var r = e(this).gmap3("get"),
                                    i = e(this).gmap3({
                                        get: "infowindow"
                                    }),
                                    s = n && n[1] ? n && n[1].formatted_address: "no address";
                                    if (i) {
                                        i.open(r, t);
                                        i.setContent(s)
                                    } else {
                                        e(this).gmap3({
                                            infowindow: {
                                                anchor: t,
                                                options: {
                                                    content: s
                                                }
                                            }
                                        })
                                    }
                                }
                            }
                        })
                    }
                }
            },
            map: {
                options: {
                    zoom: 13
                }
            }
        });
        e("#gmap").gmap3({
            marker: {
                latLng: [ - 37.817243, 144.955475],
                options: {
                    draggable: true
                },
                events: {
                    dragend: function(t) {
                        e(this).gmap3({
                            getaddress: {
                                latLng: t.getPosition(),
                                callback: function(n) {
                                    var r = e(this).gmap3("get"),
                                    i = e(this).gmap3({
                                        get: "infowindow"
                                    }),
                                    s = n && n[1] ? n && n[1].formatted_address: "no address";
                                    if (i) {
                                        i.open(r, t);
                                        i.setContent(s)
                                    } else {
                                        e(this).gmap3({
                                            infowindow: {
                                                anchor: t,
                                                options: {
                                                    content: s
                                                }
                                            }
                                        })
                                    }
                                }
                            }
                        })
                    }
                }
            },
            map: {
                options: {
                    zoom: 13
                }
            }
        })
    }
    e(document).on("click", ".styled-dd",
    function(t) {
        t.stopPropagation();
        if (e(t.target).hasClass("styled-dd")) e(this).find("select").simulate("mousedown")
    });
    e(".carousel").bind("slide.bs.carousel",
    function(t) {
        var n = e(this);
        setTimeout(function() {
            if (!n.is(":visible")) return false;
            var r = e(t.relatedTarget).outerHeight();
            n.animate({
                height: r
            },
            590)
        },
        10)
    });
    e(".prettyCheckable").each(function() {
        e(this).prettyCheckable()
    });
    e(".vmenu .prettyCheckable").on("change",
    function() {
        var t = e(this);
        t.parent().siblings("ul").find(".prettyCheckable").each(function() {
            if (t.prop("checked")) {
                e(this).prettyCheckable("check");
                e(this).parent().addClass("checked")
            } else {
                e(this).prettyCheckable("uncheck");
                e(this).parent().removeClass("checked")
            }
        })
    });
    e('[data-toggle="lightbox"]').magnificPopup({
        type: "image",
        disableOn: function() {
            return e(window).width() < 500 ? false: true
        }
    });
    var n = e(".owl-carousel");
    n.each(function() {
        var t = e(this),
        n = {
            items: t.data("visible-items") === undefined ? 4 : t.data("visible-items"),
            speed: t.data("slideshow-speed") === undefined ? 800 : t.data("slideshow-speed"),
            lazyLoad: t.data("lazyload") == true ? true: false,
            navigation: t.data("navigation") == true ? true: false,
            pagination: t.data("pagination") == true ? true: false
        };
        t.owlCarousel({
            items: n.items,
            slideSpeed: n.speed,
            lazyLoad: n.lazyLoad,
            lazyEffect: false,
            navigation: false,
            pagination: n.pagination,
            navigationText: ['<i class="iconfont-angle-left"></i>', '<i class="iconfont-angle-right"></i>'],
            afterInit: function() {
                var e = t.siblings(".owl-controls");
                if (e.length) {
                    e.prependTo(t);
                    if (scrnW < 768) {
                        e.addClass("top").removeClass("outside")
                    }
                }
                e.find(".owl-prev").on("click",
                function() {
                    t.trigger("owl.prev")
                });
                e.find(".owl-next").on("click",
                function() {
                    t.trigger("owl.next")
                })
            }
        })
    });
    e("html:not(.lte8) .owl-buttons div").hoverIntent({
        over: function() {
            var t = e(this),
            n = t.clone(),
            r = n.hasClass("owl-prev") ? "left": "right";
            var i = t.offset().left;
            i = r == "right" ? i + 50 : i - 50;
            n.css({
                position: "absolute",
                left: t.offset().left,
                top: t.offset().top,
                cursor: "hand",
                "z-index": "2"
            }).addClass("round-icon").appendTo("body").animate({
                left: i,
                opacity: "0"
            },
            300, "easeOutQuad",
            function() {
                n.detach()
            })
        },
        out: function() {
            return
        },
        timeout: 150
    });
    e(".noIE .animated:not(.animation-done)").waypoint(function() {
        var t = e(this).data("animation");
        e(this).addClass("animation-done").addClass(t)
    },
    {
        triggerOnce: true,
        offset: "85%"
    });
    e('[data-toggle="tooltip"]').tooltip();
    e('input[type="text"], input[type="password"], input[type="email"], input[type="tell"], textarea').on("focus",
    function() {
        e(this).siblings(".placeholder").addClass("hide-label")
    });
    e(".placeholder").on("click",
    function() {
        e(this).siblings("input").focus()
    });
    e('input[type="text"], input[type="password"], input[type="email"], input[type="tell"], textarea').on("blur",
    function() {
        if (e(this).val() == "") {
            e(this).siblings(".placeholder").removeClass("hide-label")
        } else {
            e(this).siblings(".placeholder").addClass("hide-label")
        }
    });
    e('[data-toggle="sub-header"]').each(function() {
        var t = e(this),
        n = e(t.data("target"));
        t.hoverIntent({
            over: function() {
                if (t.offset().left < n.width()) {
                    n.css("right", n.width() / -2)
                } else {
                    n.css("right", 0)
                }
                n.animate({
                    height: "toggle"
                },
                300, "easeInExpo")
            },
            out: function() {
                n.animate({
                    height: "toggle"
                },
                300, "easeOutExpo")
            },
            timeout: 250
        })
    });
    e(".main-menu ul").each(function() {
        if (e(this).closest(".mega-menu").length == 0) {
            e(this).addClass("sub-menu")
        } else {
            e(this).addClass("mega-menu-parent")
        }
    });
    e(".main-menu li").each(function() {
        if (e(this).find("ul").length) e(this).addClass("has-child")
    });
    e(".main-menu li").hoverIntent({
        over: function() {
            var t = e(this),
            n = t.children(".mega-menu"),
            r = e("#site-menu");
            var i = r.closest(".main-header");
            var s = scrnW >= 1170 ? "col-lg": "col-md";
            cols = parseInt(n.data(s)),
            mmW = i.outerWidth(),
            mmLeft = i.offset().left - t.offset().left;
            if (isNaN(cols)) cols = 12;
            mmW = parseInt(mmW * (cols / 12));
            mmLeft += (i.outerWidth() - mmW) / 2;
            mmLeft = parseInt(mmLeft);
            n.css({
                left: mmLeft + "px",
                width: mmW + "px",
                visibility: "visible"
            });
            t.addClass("hover").children("ul, .mega-menu").animate({
                height: "toggle"
            },
            300,
            function() {
                e(this).css("overflow", "visible")
            })
        },
        out: function() {
            e(this).removeClass("hover").children("ul, .mega-menu").animate({
                height: "toggle"
            },
            300,
            function() {
                e(this).css("overflow", "visible")
            })
        },
        timeout: 200
    });
    e("#mobile-menu").dlmenu({
        animationClasses: {
            classin: "dl-animate-in-5",
            classout: "dl-animate-out-5"
        }
    })
})